Я теперь понял, что мой оригинальный организационный метод не подходит, поэтому я хочу добавить всю информацию в новый рабочий лист с именем ("RAW")
Я пытаюсь создать Do L oop на основе количества строк таблицы. Здесь я зацикливаюсь на одном "theFILE.xlsm", который открывает книги по одной. Когда рабочая книга открыта, я хочу скопировать
Вот что я хочу сделать; Откройте рабочую книгу (sFile), подсчитайте databodyrange.count в Table2, присвойте счет переменной с именем BodyCount, скопируйте и вставьте нужную строку, L oop для количества раз BodyCount
Каждая книга, которая будет открыта, имеет Таблица 2, но ни одна из таблиц не заполнена, поэтому я не могу полагаться, если ячейка <> "", как я делал с первым Do Хотя L oop.
Как мне создать al oop копировать по 1 строке за раз в зависимости от количества строк в таблице.
Вот что
Sub every_one() ''compile everything into 1 list
''''DIMMENSIONS
Application.ScreenUpdating = False
Dim SourceRow As Long
Dim sFile As String
Dim wb As Workbook
Dim FileName1 As String
Dim FileName2 As String
Dim wksSource As Worksheet
Const scWkbSourceName As String = "theFILE.xlsm"
Set wkbSource = Workbooks(scWkbSourceName)
Set wksSource = wkbSource.Sheets("Sheet1")
Const wsOriginalBook As String = "theFILE.xlsm"
Const sPath As String = "U:\theFILES\"
SourceRow = 5
DestinationColumn = 2
FirstDestinationRow = 1
SecondDestinationRow = 41
''ENSURE SELECT SOURCE SHEET
Sheets("Sheet1").Select
Do While Cells(SourceRow, "C").Value <> ""
FileName1 = wksSource.Range("A" & SourceRow).Value
FileName2 = wksSource.Range("L" & SourceRow).Value
sFile = sPath & FileName1 & "\" & FileName2 & ".xlsm"
''OPEN FILE
Set wb = Workbooks.Open(sFile)
''insert CODE TO LOOP
''DECLARE TABLE
Dim tbl As ListObject
Dim BodyCount As Long
Dim StartingTablePosition As Long
Set tbl = ActiveSheet.ListObjects("Table2")
'start FOR, LOOP
BodyCount = ActiveSheet.ListObjects("Table2").DataBodyRange.Rows.Count
Dim WorkingRow As Long
WorkingRow = 20
For i = WorkingRow to WorkingRow + BodyCount Step 1
'COPY "SourceRow" from "theFILE.xlsm"
Windows("theFILE.xlsm").Activate
Rows(SourceRow).Copy
'PASTE to Compile Sheet, next available column & TRANSPOSE row into column
Sheets("RAW").Cells.Item(FirstDestinationRow, DestinationColumn).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'COPY ROW from "sFile" Table2
wb.Activate
Rows(WorkingRow).Copy
Application.CutCopyMode = False
'PASTE to Compile sheet, TRANSPOSE row into column
Windows("theFILE 1.1.xlsm").Activate
ActiveSheet.Cells.Item(SecondDestinationRow, DestinationColumn).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
DestinationColumn = DestinationColumn + 1
Next i
''End custom code for desired loop operation
''CLOSE WORKBOOK W/O BEFORE SAVE
wb.Activate
Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True
ActiveWorkbook.Close savechanges:=False
Windows("theFILE.xlsm").Activate
Sheets("Sheet1").Select
''GO TO NEXT .xlsm FILE
SourceRow = SourceRow + 1
Loop
End Sub
Я новичок в For ... Next Loops. Будем весьма благодарны за любые советы, подсказки и подсказки.
Вот несколько картинок,