Скопируйте строку из Листа 1 и вставьте ее в Лист 2, если цвет ячейки зеленый - PullRequest
0 голосов
/ 29 сентября 2019

Я сделал этот код для копирования данных с 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

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

Вы установили

Application.CutCopyMode = False

Так что в буфере нечего вставлять.Переместите эту строку после PasteSpecial

. Вам лучше не копировать и не вставлять.Когда вы копируете / вставляете, вы гадите в буфере копирования / вставки пользователя.Как правило, лучше присваивать значения и другие аспекты напрямую:

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

и т. Д.

0 голосов
/ 29 сентября 2019

Немного вещей, которые необходимо учитывать, цикл For будет перебирать столбец A Листа1 и копировать полную строку в Лист2 в следующей доступной строке, если она соответствует критериям:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...