|
本帖最后由 any1009 于 2018-7-11 12:25 编辑
各位老师:
我想在改动指定列的内容时触发过程:1. 根据修改的列,修改行的单元格内容记录到字典里,改动触发多次,字典累积增加;2. 根据修改的列,在字典里查找修改行在字典里是否存在,存在即记录进数组,以便另一个过程调用该数组;关闭文件,字典不再累积。
现在有一个问题:改动触发后,是记录进字典的,但是再触发一个改动后,字典就又新建了,也就是说,不管改动触发了几次,字典都是只有一个key,并没有按照预想的取进行累积。
也不知到说清楚没有,请各位老师帮忙看看,附上代码:
Public dic As Object
Private Sub Workbook_Open()
ReDim zcrr(1 To 1, 1 To 8)
zcrr(1, 1) = "名称1"
zcrr(1, 2) = "名称2"
zcrr(1, 3) = "名称3"
zcrr(1, 4) = "名称4"
zcrr(1, 5) = "名称5"
zcrr(1, 6) = "名称6"
zcrr(1, 7) = "名称7"
zcrr(1, 8) = "名称8"
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
trow = Target.Row
tcolumn = Target.Column
Set dic = CreateObject("Scripting.Dictionary")
If trow > 2 Then
If tcolumn = 7 Or tcolumn = 8 Or tcolumn = 9 Then
dic(trow) = "ok"
End If
End If
n = UBound(zcrr)
If trow > 2 And tcolumn = 14 Then
If dic.exists(trow) Then
n = n + 1
ReDim zcrr(1 To n, 1 To 8)
zcrr(n, 1) = Date
zcrr(n, 2) = Sh.Range(trow, 2)
zcrr(n, 3) = Sh.Range(trow, 3)
zcrr(n, 4) = Sh.Range(trow, 7)
zcrr(n, 5) = Sh.Range(trow, 8)
zcrr(n, 6) = Sh.Range(trow, 9)
zcrr(n, 7) = Sh.Range(trow, 10)
zcrr(n, 8) = Sh.Range(trow, 14)
MsgBox n
End If
End If
End Sub
谢谢!~
|
|