[英]Referencing Outside Sheets in Module - Subscript out of Range
我正在尝试创建一个宏,以便每当工作表2的M列中的单元格更改为“特殊”时,该单元格的行号就会复制到工作表12的B列中的第一个空白单元格中。 这是我到目前为止在Sheet2中拥有的内容:
If Target.column = 13 Then
Dim l As Integer
With Sheet2
For l = 3 To 1000
If .Cells(l, 13) = "Special" Then
Worksheets("sheet12").Range("B1").End(xlDown).Offset(1, 0).Value = l
End If
Next
End With
End If
现在,我遇到运行时错误'9':下标超出了行Worksheets("sheet12").Range("B1").End(xlDown).Offset(1, 0).Value = l
,但我不确定在尝试了多次相同错误的迭代后要更改什么。 我知道还有其他一些问题涉及这种类型的错误,但是我找不到任何有助于此特定脚本的问题。
在声明中
Worksheets("sheet12").Range("B1").End(xlDown).Offset(1, 0).Value = l
唯一可能导致“下标超出范围”错误的是,如果您没有Name
为“ sheet12”的工作表。
考虑到你有一个With Sheet2
声明,它很可能是“Sheet12”其实是CodeName
您的工作表的,所以你的说法应该是:
sheet12.Range("B1").End(xlDown).Offset(1, 0).Value = l
但是,正如@Lowpar的注释所指出的那样,在尝试查找列中最后使用的行时,最好使用End(xlUp)
,这样最好写成:
sheet12.Range("B" & sheet12.Rows.Count).End(xlUp).Offset(1, 0).Value = l
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.