vba вставить значения листа1 и сохранить исходное форматирование? - PullRequest
0 голосов
/ 16 января 2019

У меня до 6 ячеек с потенциальными данными из 6 разных мест. Я пытаюсь получить только первые три ячейки с данными, перенесенными на другой лист С ОРИГИНАЛЬНЫМ ФОРМАТОМ Sub Transfer_Data ()

Sub Transfer_Data()

Dim i As Long, j As Long

j = 1

For i = 1 To 6
    If Sheets("Sheet1").Cells(i, 1).Value <> "" Then
        Sheets("Sheet2").Cells(j, 1).Value = Sheets("Sheet1").Cells(i, 1).Value
        j = j + 1
    End If

    If j > 3 Then Exit For
Next i

End Sub

что происходит, если он отображает формат листа2 и цвет, когда я пытаюсь сохранить sheet1

1 Ответ

0 голосов
/ 16 января 2019

Попробуй вот так ...

Sub Transfer_Data()

Dim i As Long, j As Long

j = 1

For i = 1 To 6
    If Sheets("Sheet1").Cells(i, 1).Value <> "" Then
        Sheets("Sheet1").Cells(i, 1).Copy
        Sheets("Sheet2").Cells(j, 1).PasteSpecial xlPasteFormats
        Sheets("Sheet2").Cells(j, 1).PasteSpecial xlPasteValues
        j = j + 1
    End If

    If j > 3 Then Exit For
Next i
Application.CutCopyMode = False
End Sub

Отредактированный код в соответствии с новым требованием:

Sub Transfer_Data()

Dim i As Long, j As Long

j = 1

For i = 1 To 6
    If Sheets("Sheet1").Cells(i, 1).Value <> "" Then
        Sheets("Sheet2").Cells(j, 1).Value = Sheets("Sheet1").Cells(i, 1).Value
        Sheets("Sheet2").Cells(j, 1).Interior.Color = Sheets("Sheet1").Cells(i, 1).Interior.Color
        j = j + 1
    End If

    If j > 3 Then Exit For
Next i

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...