Всем доброго дня ! Вопрос такой: есть несколько открытых книг .xlsx (в прикрепленном примере 3). Я среди них нахожу максимальное количество листов в книге и присваиваю это значение в переменную. Потом мне надо в цикле m= 0 до 2 обращаться и работать с каждой из этих книг. Я создаю переменную CurrentFile As Workbook и массив из имен файлов этих книг CurrentFileName(2) As String, нахожу искомое значение и закрываю открытые книги. Set CurrentFile = Workbooks.Open(CurrentFileName(m)) 'работает CurrentFile.Close SaveChanges:=False 'работает Но я хочу обойтись без закрытия книг, чтоб не мелькало на экране. Так как потом их снова открывать в другом цикле, поочереди.
Я пытаюсь назначить переменной CurrentFile конкретную книгу: Set CurrentFile = Workbooks(CurrentFileName(m)) ' не работает выдает ошибку Run-time error '9' Subscript out of range Здесь не получается, почему-то...
Что я не так делаю ? Пример прилагаю.
Всем доброго дня ! Вопрос такой: есть несколько открытых книг .xlsx (в прикрепленном примере 3). Я среди них нахожу максимальное количество листов в книге и присваиваю это значение в переменную. Потом мне надо в цикле m= 0 до 2 обращаться и работать с каждой из этих книг. Я создаю переменную CurrentFile As Workbook и массив из имен файлов этих книг CurrentFileName(2) As String, нахожу искомое значение и закрываю открытые книги. Set CurrentFile = Workbooks.Open(CurrentFileName(m)) 'работает CurrentFile.Close SaveChanges:=False 'работает Но я хочу обойтись без закрытия книг, чтоб не мелькало на экране. Так как потом их снова открывать в другом цикле, поочереди.
Я пытаюсь назначить переменной CurrentFile конкретную книгу: Set CurrentFile = Workbooks(CurrentFileName(m)) ' не работает выдает ошибку Run-time error '9' Subscript out of range Здесь не получается, почему-то...
Мерцать экран перестал, все работает). Спасибо ! Но, для понимания, если не трудно посмотрите, почему все-таки выдавала ошибку следующая строчка: Set CurrentFile = Workbooks(CurrentFileName(m)) ' не работает выдает ошибку Run-time error '9' Subscript out of range
Весь текс макроса в приложенном файле Проба.xlsm
Мерцать экран перестал, все работает). Спасибо ! Но, для понимания, если не трудно посмотрите, почему все-таки выдавала ошибку следующая строчка: Set CurrentFile = Workbooks(CurrentFileName(m)) ' не работает выдает ошибку Run-time error '9' Subscript out of range
Весь текс макроса в приложенном файле Проба.xlsmSerg5876
Добрый день ! Учел ваши замечания, все работает красиво ! В первом цикле файлы открываются для обработки, а во втором последовательно обрабатываются и закрываются по-очереди, убрал добавление пути PrimaryData.Path по вашему совету и при присвоении переменной имени открытой книги изменил метод: Set CurrentFile = Workbooks.Open(CurrentFileName(m)) было Set CurrentFile = Workbooks(CurrentFileName(m)) стало. Так как книги уже открыты в первом цикле. Насчет последней строчки вашего ответа - вы как в воду глядели)), у меня эта строчка в моем коде есть))
CurMonth = PrimaryData.Worksheets(1).Range("F1")
Спасибо за участие и разъяснения ! А то чувствовал себя полным кретином))
Добрый день ! Учел ваши замечания, все работает красиво ! В первом цикле файлы открываются для обработки, а во втором последовательно обрабатываются и закрываются по-очереди, убрал добавление пути PrimaryData.Path по вашему совету и при присвоении переменной имени открытой книги изменил метод: Set CurrentFile = Workbooks.Open(CurrentFileName(m)) было Set CurrentFile = Workbooks(CurrentFileName(m)) стало. Так как книги уже открыты в первом цикле. Насчет последней строчки вашего ответа - вы как в воду глядели)), у меня эта строчка в моем коде есть))
CurMonth = PrimaryData.Worksheets(1).Range("F1")
Спасибо за участие и разъяснения ! А то чувствовал себя полным кретином))Serg5876
Сергей
Сообщение отредактировал Serg5876 - Четверг, 11.01.2024, 13:26