繁体   English   中英

引用模块中的外部图纸-下标超出范围

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM