Как скопировать и вставить динамические значения таблицы в следующую пустую ячейку? - PullRequest
0 голосов
/ 29 октября 2019

Я хочу выбрать ячейки со значениями из динамической таблицы, а затем скопировать и вставить эти значения в другой лист с таблицей, в которой доступна следующая пустая ячейка.

Мне удалось тольконайти код, который будет копировать и вставлять определенный диапазон в следующую пустую ячейку, или копировать и вставлять динамический диапазон с некоторыми значениями и пустыми ячейками.

Sub SaveKit_1()

Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopy As Long
Dim lDest As Long

  Set wsCopy = Worksheets("Kit_db") 'Copies table from Kit_db worksheet
  Set wsDest = Worksheets("Kit_db (1)") 'Pastes table to Kit_db (1) worksheet

  lCopy = wsCopy.Cells(wsCopy.Rows.Count, "E").End(xlUp).Row
  lDest = wsDest.Cells(wsDest.Rows.Count, "E").End(xlUp).Offset(1).Row

  'Copies any cell within the table
  wsCopy.Range("B3:I" & lCopy).Copy _ 
     wsDest.Range("B" & lDest)

End Sub

Все ячейки в динамической таблице копируются и вставляются, а неячейки в таблице со значениями. Я пытаюсь вставить значения только потому, что некоторые ячейки в динамической таблице имеют формулы.

Я пробовал следующие специальные вставки

   PasteSpecial _
   Paste:=xlPasteValuesAndNumberFormats, _
   Operation:=xlPasteSpecialOperationNone, _
   SkipBlanks:=True, _
   Transpose:=False

Но я не думаю, что разместил их правильнос существующим кодом или я использую неправильный тип кода для вставки.

1 Ответ

1 голос
/ 29 октября 2019

Вот пример специальной вставки в качестве значений с вашим кодом

Sub SaveKit_1()

Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopy As Long
Dim lDest As Long

  Set wsCopy = Worksheets("Kit_db") 'Copies table from Kit_db worksheet
  Set wsDest = Worksheets("Kit_db (1)") 'Pastes table to Kit_db (1) worksheet

  lCopy = wsCopy.Cells(wsCopy.Rows.Count, "E").End(xlUp).Row
  lDest = wsDest.Cells(wsDest.Rows.Count, "E").End(xlUp).Offset(1).Row

  'Copies any cell within the table
  wsCopy.Range("B3:I" & lCopy).Copy
  wsDest.Range("B" & lDest).PasteSpecial xlPasteValues

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