代码之家  ›  专栏  ›  技术社区  ›  Rich Prag

VBA尝试使用范围。与保存在命名变量中的单元格地址的偏移量

  •  2
  • Rich Prag  · 技术社区  · 8 年前

    如何将其更改为从“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 回复  |  直到 8 年前
        1
  •  4
  •   Vityata    8 年前

    试着这样做:

    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
    

    在声明之后。它将在即时窗口中显示其工作表、应用程序名称及其地址。因此,它已经“知道”它们,如果你试图“重新声明”它们,你会得到一个错误。