永发信息网

问题是这个只能对C列有用,如果数据在D列,怎么修改代码,谢谢!我试着修改了但是怎么修改都还是在c列。

答案:2  悬赏:10  手机版
解决时间 2021-03-09 18:28
  • 提问者网友:王者佥
  • 2021-03-09 12:06
以下代码vba来自网络,谢谢原作者!问题是这个只能对C列有用,如果数据在D列,怎么修改代码,谢谢!我试着修改了但是怎么修改都还是在c列。
Sub Macro1()
Dim arr, dic As Object, arr1, arr2
Columns("c:c").Interior.ColorIndex = xlNone
Set dic = CreateObject("scripting.dictionary")
arr = Range("c2:c" & Range("c65536").End(xlUp).Row)
For i = 1 To UBound(arr)
If Not dic.exists(arr(i, 1)) Then dic.Add arr(i, 1), 1 Else dic(arr(i, 1)) = dic(arr(i, 1)) + 1
Next i
arr1 = dic.keys: arr2 = dic.items
For i = 0 To dic.Count - 1
For j = 1 To UBound(arr)
If arr2(i) > 1 And arr1(i) = arr(j, 1) Then Cells(j + 1, 3).Interior.ColorIndex = i + 3 Mod 56
Next j
Next i
Set dic = Nothing
End Sub
最佳答案
  • 五星知识达人网友:举杯邀酒敬孤独
  • 2021-03-09 13:41
这个还是用Private Sub Worksheet_Change事件
是C列输入*,D就=E,实际上不管你E的值是不是公式引用的,跟这个代码没关系,这是C的事件,与E无关。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R&
If Target.Row>1 And Target.Column = 3 And Target.Value ="*" Then
R = Target.Row
Cells(R, 4) = Cells(R, 5)
End If
我不明白是的你C列只输入字符*,还是输入任意数据?如果是输入任意数据
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R&
If Target.Row>1 And Target.Column = 3 Then
R = Target.Row
Cells(R, 4) = Cells(R, 5)
End If
End Sub
也可以直接用E的公式
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R&
If Target.Row>1 And Target.Column = 3 Then
R = Target.Row
Cells(R, 4) = Cells(R, 6)-Cells(R,7)
End If
End Sub
全部回答
  • 1楼网友:詩光轨車
  • 2021-03-09 14:58
同问。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯