Excel VBA:从变量工作表名称传输数据,运行时错误“91”

Excel VBA:从变量工作表名称传输数据,运行时错误“91”,vba,excel,Vba,Excel,我要做的是将数据从名为sheet的变量传输到特定的sheet SUMMARY。然后,我想考虑变量表中的一个单元格。因此,如果单元格>0,则会将该行复制到摘要中。但我有一个“对象变量或块变量未设置”错误。我做错了什么 Sub transfer() Dim ws As String Dim n As Integer Dim i As Long Dim c As Range n = Sheets("S

我要做的是将数据从名为sheet的变量传输到特定的sheet SUMMARY。然后,我想考虑变量表中的一个单元格。因此,如果单元格>0,则会将该行复制到摘要中。但我有一个“对象变量或块变量未设置”错误。我做错了什么

        Sub transfer()

        Dim ws As String
        Dim n As Integer
        Dim i As Long

        Dim c As Range

        n = Sheets("Start").Range("c24").Value + 3

        If n > 0 Then
            For i = 3 To n

                Dim desrow As Integer
                desrow = i - 1
                Dim rng As Range

                rng = Range("AA11:AA40")

                    For Each c In rng
                        If c = 12 Then

                             Sheets("OFFLIMITS").Cells(desrow, 1).Value = Sheets(i).Range("C3")

                        End If
                    Next c
            Next i

        End If

        End Sub
您必须设置对象,因此需要说:

Set rng = Range("AA11:AA40")

我遇到一个编译错误:找不到方法或数据成员。错误是发生在那一行还是另一行?如果是另一行,哪一行?而且,如果在那一行,你的活动工作表是工作表还是图表?@LiezlMaigue-而且,如果是那一行,我有时会看到帖子的复制/粘贴包含一些看不见的无效字符,所以只需尝试删除这一行,然后手动再次键入即可。@LiezlMaigue-好的-尝试删除并键入-出现编译错误非常奇怪,因为这条线至少在视觉上是完全好的。我将您的代码复制到VBA中,甚至使用“复制/粘贴”更改了行,然后尝试运行它并成功编译。@RADO-更糟糕的编码方式是不限定范围引用的工作表:D我无法从代码中计算出它要引用或可能要引用的工作表,这就是为什么我在写答案时没有加上限定条件。我仍在挠头,试图弄清楚代码与问题之间的关系。所以,也许它应该是Sheetsi.RangeAA11:AA40???