Как скопировать и вставить значения и форматы в новый лист с помощью VBA - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь скопировать значения и формат из Листа1 в Лист2, но мне не очень повезло. Код работает нормально, но вставляет только значение

. Я пытался использовать xlPasteFormats с xlPasteValues ​​и продолжаю получать ошибки.

    Private Sub TransferButton_Click()
    Application.ScreenUpdating = False
      Dim copySheet As Worksheet
      Dim pasteSheet As Worksheet

      Set copySheet = Worksheets("Sheet1")
      Set pasteSheet = Worksheets("Sheet2")


  copySheet.Range("A1:G29").Copy

  pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial 
  Paste:=xlPasteAll
  pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial 
  Paste:=xlPasteColumnWidths

  Application.CutCopyMode = False
  Application.ScreenUpdating = True

      Range("D5").Value = Range("D5").Value + 1

        Range("A8").ClearContents
        Range("B8").ClearContents
        Range("C8").ClearContents
        Range("D8").ClearContents
        Range("A10").ClearContents
        Range("A13").ClearContents
        Range("B13").ClearContents
        Range("C13").ClearContents
        Range("D13").ClearContents
        Range("A15").ClearContents
        Range("B15").ClearContents
        Range("C15").ClearContents
        Range("C15").ClearContents
        Range("A17").ClearContents
        Range("C17").ClearContents
        Range("A20:D24").ClearContents
        Range("D25").ClearContents
        Range("A28").ClearContents
        Range("B28").ClearContents
        Range("C28").ClearContents

    End Sub

Я ожидаю, что вставленный диапазон из sheet1 будет скопирован и вставлен в лист2 с одинаковыми значениями, цветами, шрифтами (форматами) и т. Д.

1 Ответ

0 голосов
/ 28 октября 2019
  Dim copySheet As Worksheet
  Dim pasteSheet As Worksheet

  Set copySheet = Worksheets("Sheet1")
  Set pasteSheet = Worksheets("Sheet2")

  copySheet.Range("A1:G29").Copy
  With pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        .PasteSpecial xlPasteColumnWidths
        .PasteSpecial xlPasteValues
        .PasteSpecial xlPasteFormats
  End With

'You can assign the height of a row to different rows if xlPasteFormats does not do it for you
      height = copySheet.Range("A5").Height
      pasteSheet.Range("A1:G29").RowHeight = height

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