excel - 我将如何更改此宏以在第 29 行开始计数/粘贴?

此宏从 sheet1 复制一个范围,并将其粘贴到 sheet2 中的第一个可用行(从 A1 开始)。我一直在尝试让它开始在 A29 中搜索/粘贴,但一直无法获得正确的语义。

任何输入表示赞赏。

Sub copy2Database()
      
    ' This copies the Data to the Database
    
      Application.ScreenUpdating = False
      Dim copySheet As Worksheet
      Dim pasteSheet As Worksheet
    
      Set copySheet = Worksheets("DATA ENTRY")
      Set pasteSheet = Worksheets("REPORT")
    
      copySheet.Range("B23:M23").Copy
      pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
      Application.CutCopyMode = False
      Application.ScreenUpdating = True
    End Sub

回答1

像这样:

Sub copy2Database()
    Dim copySheet As Worksheet,pasteSheet As Worksheet, cDest As Range      
    
    
      Application.ScreenUpdating = False
      Set copySheet = Worksheets("DATA ENTRY")
      Set pasteSheet = Worksheets("REPORT")

      Set cDest = pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
      if cDest.Row < 29 then set cDest = pasteSheet.Range("A29") 'too high?
    
      'direct transfer is preferrable to copy/paste
      With copySheet.Range("B23:M23")
          cDest.Resize(.Rows.Count, .Columns.Count).Value= .Value
      End With

      Application.ScreenUpdating = True
End Sub

相似文章

r - Average duration 的时间花费 R

我正在尝试编写一个可以计算行为事件的averageduration的脚本。理想情况下,可以为我所有的行为类别进行计算,如果可能的话,还可以计算标准误差。我的数据如下29/10/20156:09:389...

最新文章