VBA尝试将range.offset与命名变量中保存的单元格地址一起使用

时间:2017-09-19 14:37:40

标签: excel vba excel-vba range offset

我试图从一个工作簿中获取一个小的数据矩阵,并使用来自单元格引用的偏移量将其粘贴到ThisWorkbook中。虽然单元格引用会在我查找值的范围内循环变化。我设置的变量叫做'WhereCell'保存当前保持的值的地址,并且我希望抵消WhereCell中保存的任何内容。它可以工作,如果我硬编码单元格引用,例如范围(" A1")但是使用代码,因为我得到1004:方法'范围'对象' _Global'失败。

如何将其更改为偏离' WhereCell'?

Sub GetFlows()

Dim rng As Range
Dim row As Range
Dim cell As Range
Dim dem1 As String
Dim WhereCell As Range
Dim valueRng As Range
Dim x As Long
Dim y As Long

Set rng = Range("A9:A200")

For x = 1 To rng.Rows.Count

dem1 = rng.Cells(x).Value

If dem1 <> "" Then
    Set WhereCell = ThisWorkbook.ActiveSheet.Range("A9:A200").Find(dem1, lookat:=xlPart)
    Windows("GetFilenames v2.xlsm").Activate
    Worksheets(dem1).Range("A1").CurrentRegion.Copy
    ThisWorkbook.ActiveSheet.Range(Range(WhereCell), Range(WhereCell).Offset(, 2)).PasteSpecial Paste:=xlPasteValues
    'MsgBox dem1
    'If Not WhereCell Is Nothing Then
    'MsgBox WhereCell.Address
    'End If
    Else
    ThisWorkbook.Activate
End If

Next x

End Sub

1 个答案:

答案 0 :(得分:3)

试试这样:

WhereCell.Offset(0, 2)).PasteSpecial Paste:=xlPasteValues

而不是:

ThisWorkbook.ActiveSheet.Range(Range(WhereCell), Range(WhereCell).Offset(, 2)).PasteSpec...

要了解有关WhereCell的更多信息,请考虑编写

Debug.Print WhereCell.Parent.Name
Debug.Print WhereCell.Parent.Parent.Name
Debug.Print WhereCell.Address
声明之后

。它将在即时窗口中显示其工作表,应用程序的名称及其地址。因此,它已经知道&#34;他们如果你试图重新宣布&#34;他们,你得到一个错误。