- Код: Выделить всё
Public C1 As Object ' Приложение
Public W1 As Object ' Файл
Public S1 As Object ' Лист
Set C1 = CreateObject("Excel.Application") ' Создаём объект - суть приложение Excel :
Set W1 = C1.Workbooks.Open(path0 & file) ' Далее на этой базе задаём (но уже имеющуюся на диске) рабочую книгу :
For k = 1 To C1.Sheets.Count
Set S1 = W1.Worksheets(k) ' И, наконец - на базе первого и второго создаём рабочий лист
' Заполняем таблицу данными из закрытой книги в обычном листе :
For j = 1 To 5
For i = 1 To 1000 ' вертикальный просмотр листа :
yyy = S1.Cells(i, j)
If Trim$(yyy) <> "0" Then
Sheets("InComing").Cells(i, j) = yyy
End If
Next i
Next j
Set S1 = Nothing ' Лист
Next k
Увы - таблицу приходится читать, не зная заранее её размеры по вертикали и горизонтали - что вызывает лишние циклы. А вот как найти границы таблицы (листа) в ЗАКРЫТОЙ книге - не знаю. Например, для обычного листа последняя строка на листе находится как
- Код: Выделить всё
iLastRow& = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
А вот как то же самое сделать для закрытой книги? Как записать xlUp? Что ни пробывал - не выходит. Может, кто знает?
Спасибо.