![](/img/trans.png)
[英]Copy and Paste a Row from Sheet1 Containing “YES” in Cell J to Sheet4 in Excel 2007
[英]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.