簡體   English   中英

如果單元格的顏色為綠色,則從 Sheet1 復制一行並將其粘貼到 Sheet 2

[英]Copy a row from Sheet1 and paste it into Sheet 2 if color of a cell is green

如果單元格的顏色為綠色(在條件格式化后變為綠色),我制作了此代碼以將數據從 Sheet1 復制到 Sheet2。 但這給了我顏色狀況的錯誤。 有什么建議么?

Private Sub CommandButton1_Click()
a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
    If Worksheets("Sheet1").Interior.ColorIndex = 14 Then
        Worksheets("Sheet1").Rows(i).Copy  
        Worksheets("Sheet2").Activate
        b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
        Worksheets("Sheet2").Cells(b + 1, 1).Select
        ActiveSheet.Paste
        Worksheets("Sheet1").Activate
    End If    
Next
Application.CutCopyMode = False
ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).Select
End Sub

需要考慮的事項很少,如果滿足條件,For 循環將遍歷 Sheet1 的 A 列並將整行復制到下一個可用行中的 Sheet2:

Private Sub CommandButton1_Click()
a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
    b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    If Worksheets("Sheet1").Cells(i, "A").Interior.ColorIndex = 14 Then
        Worksheets("Sheet1").Rows(i).Copy
        Worksheets("Sheet2").Range("A" & b).PasteSpecial xlPasteAll
        Application.CutCopyMode = False
    End If
Next i
End Sub

你設置

Application.CutCopyMode = False

所以緩沖區中沒有要粘貼的內容。 將該行移到 PasteSpecial 之后

你最好不要復制和粘貼。 當您復制/粘貼時,您會使用用戶的復制/粘貼緩沖區。 通常最好直接分配值和其他方面:

myTargetRange.Value = mySourceRange.Value
myTargetRange.Formula = mySourceRange.Formula
myTargetRange.RowHeight = mySourceRange.RowHeight

等等

暫無
暫無

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

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