Well, I got to the point where the code reads data from a closed book and can insert it into sheet2 in this book. This is my new code:
Sub Copy456() Dim iCol As Long Dim iSht As Long Dim i As Long 'Fpath = "C:\testy" ' change to your directory 'Fname = Dir(Fpath & "*.xlsx") Workbooks.Open ("run1.xlsx") For i = 1 To Worksheets.Count Worksheets(i).Activate ' Loop through columns For iSht = 1 To 6 ' no of sheets For iCol = 1 To 6 ' no of columns With Worksheets(i).Columns(iCol) If ((.Cells(1, 1).Value = "Time")) Then ' if first cell=Time then copy two columns Range(.Cells(1, 2), .End(xlDown)).Select Selection.Copy Destination:=Workbooks("Your Idea.xlsm").Worksheets("Sheet2").Columns((i + 1) + i).Cells(2, 1) Worksheets("Sheet2").Cells(i * 2 + 1) = Worksheets(i).Name Else ' do nothing End If End With Next iCol Next iSht Next i End Sub
But as soon as I change this part of the code:
Selection.Copy Destination:=Worksheets("Sheet2").Columns((i + 1) + i).Cells(2, 1)
in this code:
Destination:=Workbooks("general.xlsx").Worksheets("Sheet2").Columns((i + 1) + i).Cells(2, 1)
Stop working when an error occurs: "subscription is out of range." The general.xlsx file is an empty file that is also closed.
When I change the code to:
`Selection.Copy Destination:=Workbooks("Your Idea.xlsm").Worksheets("Sheet2").Columns((i + 1) + i).Cells(2, 1)
Then it gives an error: "1004 cannot change part of the merged cell." The file "Your Idea.xlsm" is the file from which I run this script.
Any help with this problem?
novak100
source share