Мне удалось написать код, который идет в каждую строку, если есть данные, и скопировать данные в другой файл в определенных ячейках. Теперь я хочу сделать то же самое, но код должен проходить через каждый столбец вместо строки, пока не останется данных.
Мой код для работающих строк:
Sub Row_copying()
'load my workbooks
Dim Header As Workbook
Workbooks.Open FileName:="/Users/Header.xlsx"
Set Header = Workbooks("Header.xlsx")
Dim samplelist As Workbook
Workbooks.Open FileName:="/Users/samplelist.xlsx"
Set samplelist = Workbooks("samplelist.xlsx")
samplelist.Activate
'Проход по каждой строке, в которой есть данные Dim lRow As Long
For lRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Range("A" & lRow).Value <> "" Then
'copy cell
Range("D" & lRow).Copy
Header.Activate
Range("K5:M5").Select
ActiveSheet.Paste
samplelist.Activate
Range("H" & lRow).Copy
Header.Activate
Range("F5:G5").Select
ActiveSheet.Paste
Dim DName As String, dataname As String, path As String
samplelist.Activate
path = "/Users/newdata/"
DName = "sample_"
dataname = path & DName & Format(Range("A") & lRow.Value, "000") & ".xlsx"
Header.Activate
ActiveWorkbook.SaveAs FileName:= dataname
End If
samplelist.Activate
Next lRow
Workbooks("samplelist.xlsx").Close
End Sub
Мне удалось проверить, сколько столбцов содержит данные, изменив lRow на
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox"last Column: "&lCol
, но я не смогУдостоверьтесь, что он проходит через каждый столбец и скопируйте ячейки. Кто-нибудь может мне помочь?