Как скопировать данные из закрытых листов в папку при изменении имени листа? - PullRequest
1 голос
/ 24 сентября 2019

Я установил макрос, который запускается при нажатии кнопки.Макрос проверяет указанную папку и извлекает данные из всех рабочих книг, содержащихся в папке, в активную рабочую книгу.

Код работает отлично, однако добавляются новые рабочие листы, в которых вкладки имеют немного разные номерав начале означает, что код больше не работает.

Есть ли способ заставить макрос собирать все данные независимо от имени листа?(В каждой книге будет только один лист)

Я написал код, который работал, когда имя листа всегда было одинаковым, однако, когда это меняет код, код больше не запускается.

Do While Len(fl) > 0
' Open file
Set dWb = Workbooks.Open(fDir & fl)
' Copy data from
dWb.Sheets("DailyReport").Range("A2:AU100").Copy mSh.Cells(1, nxtCol)
' Close workbook
dWb.Close SaveChanges:=True
' Increment column counter
nxtCol = nxtCol + 7
' Go to next file
fl = Dir
Loop

Ошибка времени выполнения '9': нижний индекс выходит за пределы диапазона

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Если есть только один лист:

Set dWb = Workbooks.Open(fDir & fl)
dWb.Worksheets(1) 'this selects the first sheet in the workbook

Надеюсь, это поможет

0 голосов
/ 24 сентября 2019

Попробуйте использовать activeSheet;переменная hard или str:

dWb.Worksheets(ActiveSheet.Name)

Dim ash as String
ash = ActiveSheet.Name
dWb.Worksheets(ash)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...