Excel 2010,vba,Win 7。 我正在使用on change事件来运行一些代码来更新其他表。除了一个以外的每个实例都可以正 我正在做的事情的简要描述:当所述列(2或4)被更改时,将列2(或4)复制到每个其他工作表的第2列(或4),并执行一些其他操作。其他被称为宏的工作正常。 如果我尝试删除或清除第2列中包含最后一个单元格(向下)的一系列单元格,则它会给出错误424.任何其他操作(键入,复制,删除)都可以正常工作,只要最后一个单元格仍然有其中的东西。要清楚,最后一个单元格是指包含文本的列中的最后一个单元格(向下)。上面还有其他文字。 显然我还不能发布图片,所以我无法更清楚地说明你的内容。
代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column = 2 Or Target.Column = 4) Then
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim I, WS_Index, WS_Count As Integer
WS_Index = ActiveWorkbook.ActiveSheet.Index
WS_Count = ActiveWorkbook.Worksheets.count
'copy bbcodes and consolidations across sheets
For I = 1 To WS_Count
If I <> WS_Index Then
'Error is thrown on this line!
ActiveWorkbook.Sheets(WS_Index).Columns(Target.Column).Copy Destination:=ActiveWorkbook.Sheets(I).Columns(Target.Column)
End If
ActiveWorkbook.Sheets(I).Activate
FillbyExample
Next I
ActiveWorkbook.Sheets(WS_Index).Activate
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
我对此非常陌生(从星期一开始!),尽管我已经学到了很多东西并且进行了大量搜索,但我还是无法确定发生了什么。任何帮助都将受到极大的赞赏。
答案 0 :(得分:0)
它不那么优雅,但最后我简单地确定了:
ActiveWorkbook.Sheets(WS_Index).Columns("B").Copy Destination:=ActiveWorkbook.Sheets(I).Range("B1")
因为我真的只需要这两个柱子。