簡體   English   中英

根據條件復制和粘貼數據

[英]Copy and paste data based on criteria

我編寫了一個宏代碼,用於從一個工作表(Sheet2)復制數據並粘貼到另一工作表(Sheet1)。 這很好。 但是,我希望有一個條件來確定將數據粘貼到Sheet1中的位置。 條件是,如果在Sheet1的A列(已復制數據)的Sheet2的單元格A1中(從下拉列表中)選擇的國家/地區,則使用最新數據更新(覆蓋)該國家/地區數據,否則為新國家/地區,則應將新數據粘貼到Sheet1上最后一組數據下面。

這是我到目前為止編寫的代碼:

Private Sub CommandButton1_Click()
ActiveSheet.Range("A1:F44").Copy
    With Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
        .PasteSpecial xlPasteFormats
    ActiveSheet.Range("A1:F44").Copy
    With Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
        .PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Sheets("Sheet2").Activate
End With
End With
End Sub

任何幫助將不勝感激! 非常感謝!

您可以在A列上使用match功能來檢查您是否擁有該國家/地區。 如果匹配返回一個數字,則使用該數字替換國家/地區數據,否則將返回錯誤-捕獲該錯誤並將數據添加到表格末尾。 我不確定從您編寫的數據來看您的數據到底是什么樣子,但這就是您通常想要做的。

一個一般的方法是:我正在使用match查找行值,並且使用iferror來確保我沒有得到返回的錯誤。

country = Worksheets("Sheet1").Cells(1, "A").Value 'or where your drop down is
    test = Application.WorksheetFunction.IfError(WorksheetFunction.Match(country, "A:A", 0), -1)
    If test = -1 Then
        'copy to end of sheet
    Else
         *with sheets(Sheet1).cells(rows.value, test).end(xlup).offset(1,0)* 
        'copy to the value in test - it's the row number of the country we are copying now
    End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM