Как скопировать лист1 на лист2 - PullRequest
0 голосов
/ 19 апреля 2020

Я получил два листа, лист1 содержал всю информацию о реестре за неделю для всех сотрудников, мне нужно скопировать информацию с листа1 на лист2 на основе идентификатора сотрудника в качестве первичного ключа. На листе 2 у меня есть только идентификатор и имя сотрудника отображается. Например, сотрудник 21253, записи смены в понедельник должны отображаться в день1-смену 1, значение TUE должно отображаться в день2-смену1, WED должно отображаться в день3-смену1 и столбец c .SHift2 должен оставаться пустым (пропустите это колонка) Лист1 enter image description here

Лист2: enter image description here

Мой код написан ниже: он копирует всю информацию, но не в формат показан на листе 2.

Sub transferSheet2()
Dim i As Long, j As Long, lastrow1 As Long, lastrow2 As Long
Dim myname As String
lastrow1 = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To lastrow1
myname = Sheets("Sheet1").Cells(i, "A").Value

Sheets("Sheet2").Activate
lastrow2 = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row

For j = 2 To lastrow2

If Sheets("Sheet2").Cells(j, "A").Value = myname Then
Sheets("Sheet1").Activate
'copy in sheet1 from column B to I
Sheets("Sheet1").Range(Cells(i, "B"), Cells(i, "I")).Copy
Sheets("Sheet2").Activate
'paste in sheet1 from column B to I
Sheets("Sheet2").Range(Cells(j, "B"), Cells(j, "I")).Select
ActiveSheet.Paste
End If

Next j
Next i
'insert new column
'Call insert_column_every_other

'insert headers
'Call Copy_Header
'Autofit columns

ThisWorkbook.Worksheets("Sheet2").Cells.EntireColumn.AutoFit
End Sub

1 Ответ

0 голосов
/ 19 апреля 2020

Изменить ActiveSheet.Paste

На: -

ActiveSheet.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
             Operation:= xlNone, SkipBlanks:=False, Transpose:=False

xlPasteValuesAndNumberFormats включает форматирование.

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