|
楼主 |
发表于 2017-9-20 18:49
|
显示全部楼层
Private Sub Worksheet_Change(ByVal Target As Range) '私有的子程序 Worksheet_Change(变量Target 为 单元格区域)
If Target.Count > 1 Then Exit Sub '如果 Target.Count>1 则执行 退出子程序
If Target.Column <> 4 Or Target.Row < 2 Then Exit Sub '如果 Target.Column<>4或者Target.Row<2 则执行 退出子程序
Dim Arr, i&, d, t, aa, j&, n& '定义变量 Arr,i&,d,t,aa,j&,n&
Set d = CreateObject("Scripting.Dictionary") '设定d=创建对象("Scripting.Dictionary")
Arr = [a1].CurrentRegion 'Arr=[a1的当前区域
For i = 2 To UBound(Arr) '设定变量范围为i=2到UBound(Arr)
d(Arr(i, 1)) = d(Arr(i, 1)) & Arr(i, 2) & "," 'd(Arr(i,1))=d(Arr(i,1)) & Arr(i,2) & ","
Next '下一个
If d.exists(Target.Value) Then '如果 d.exists(Target.Value) 则执行
t = d(Target.Value) 't=d(Target.Value)
n = Target.Row 'n=Target.Row
t = Left(t, Len(t) - 1) 't=左侧(t,Len(t)-1)
If InStr(t, ",") Then '如果 InStr(t,",") 则执行
aa = Split(t, ",") 'aa=Split(t,",")
For j = 0 To UBound(aa) '设定变量范围为j=0到UBound(aa)
Cells(n + j, 5) = aa(j) '单元格集合(n+j,5)=aa(j)
Next '下一个
Else '否则
Cells(n, 5) = t '单元格集合(n,5)=t
End If 'End如果
Else '否则
'
End If 'End如果
End Sub 'End子程序
这语句没错啊,可不知道为何会出现每次刷新数据就要在D2双击后按回车才会刷出来要查询找的数据,而且E列的数据也要手工去掉,才会重新出来,不然就覆盖或者遗留上一次的数据
|
|