代码之家  ›  专栏  ›  技术社区  ›  Steve

Excel VBA粘贴到具有可变行的区域

  •  0
  • Steve  · 技术社区  · 2 年前

    我正在尝试粘贴到一个具有可变行的范围中。该行基于最后一行+1。当我试图运行代码时,我遇到了一个调试错误。它应该是B2:T2、B3:T3等,基于最后一行加一。

    我使用了带有范围/单元格和行变量的标准复制粘贴。我的另一个复制粘贴在应用程序中工作得很好。

    Dim lr As Integer, cr As Integer
          Dim r As Range
          
          lr = wb_main.Worksheets("Data").Range("A" & Rows.Count).End(xlUp).Row
          cr = lr + 1
          Set r = wb_main.Worksheets("Data").Range("A" & lr)
          r.Offset(1).Value = r.Value + 1
          
          wb_main.Worksheets("Main").Range("E3:W3").Copy wb_main.Worksheets("Data").Range(Cells(cr, 2), Cells(cr, 20))
          wb_main.Worksheets("Main").Range("E3:W3").Delete
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   JohnM    2 年前

    你必须同时符合这两个条件。单元格的方式与你相同。范围

    一种选择是:

    Dim wks As Worksheet
    Set wks = wb_main.Worksheets("Data")
    wb_main.Worksheets("Main").Range("E3:W3").Copy wks.Range(wks.Cells(cr, 2), wks.Cells(cr, 20))