Excel:将新数据添加到上一个数据集的最后一行+ 1

ao218c7q  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(63)

我目前正在使用Excel宏,在该宏中,我将数据从一个工作表(sheet 1)复制到另一个工作表(sheet 2),该工作表目前正在工作。但是,我希望确保如果sheet 1中的数据发生更改(例如,当新的报告季度开始时),新数据不会复制到现有数据之上,而是复制到现有数据之下。
我目前有以下代码,它只复制基于特定值的数据(“应计Q3 - 2023”)。使用绿色注解,我试图将数据复制到lastrow + 1,这并不有效。
请参见以下代码:

Sub Accruals()

    Dim wsCopy As Worksheet
    Dim wsDest As Worksheet
    Dim i As Long
    Dim j As Long
    Dim LastRowCopy As Long
    Dim LastRowDest As Long
    
        Set wsCopy = Worksheets("Sheet1")
        Set wsDest = Worksheets("Sheet2")
    
    LastRowCopy = wsCopy.Cells(Rows.Count, "A").End(xlUp).Row
    LastRowDest = wsDest.Cells(Rows.Count, "A").End(xlUp).Offset(1).Row
    
    j = 1
    
    For i = 1 To LastRowCopy
        If wsCopy.Cells(i, 9).Value = "Accrual Q3 2023 - " Then
            
            wsCopy.Rows(i).Copy
            wsDest.Rows(j + 1).PasteSpecial xlPasteValues
            
            
            'wsCopy.Rows(i).Range("A2:K" & LastRowCopy).Copy
            'wsDest.Rows(j).Range("A" & LastRowDest).PasteSpecial xlPasteValues
            j = j + 1
        End If
    Next i
      
End Sub

字符串
另一个问题我挣扎,是我复制的数据基于限制“应计Q3 2023 -“.目前,只有具有此确切文本的变量被选中.然而,我想知道是否有可能使此限制的前几个字母可以指定,而不是整个文本.在正常的Excel中,人们会使用左功能.这也是可能的在Excel中?
我希望能收到关于我的两个斗争的信息。
我尝试了各种方法将数据复制到当前数据的最后一行之后。此外,我看了很多youtube视频。

3okqufwl

3okqufwl1#

请你试试这个:

Sub Accruals()

    Dim wsCopy As Worksheet
    Dim wsDest As Worksheet
    Dim i As Long
    Dim j As Long
    Dim LastRowCopy As Long
    Dim LastRowDest As Long
    
        Set wsCopy = Worksheets("Sheet1")
        Set wsDest = Worksheets("Sheet2")
    
    LastRowCopy = wsCopy.Cells(Rows.Count, "A").End(xlUp).Row
    LastRowDest = wsDest.Cells(Rows.Count, "A").End(xlUp).Row        'modified
    
    j = 1
    
    For i = 1 To LastRowCopy
        If wsCopy.Cells(i, 9).Value = "Accrual Q3 2023 - " Then
            
            wsCopy.Rows(i).Copy
            wsDest.Rows(LastRowDest + j).PasteSpecial xlPasteValues 'modified
            
            
            'wsCopy.Rows(i).Range("A2:K" & LastRowCopy).Copy
            'wsDest.Rows(j).Range("A" & LastRowDest).PasteSpecial xlPasteValues
            j = j + 1
        End If
    Next i
      
End Sub

字符串
Left函数也可用于Microsoft Left function

相关问题