Проверьте, имеет ли ваша переменная Filename
правильное имя файла. (например, Sample.xls)
Также проверьте правильность значений в input_path_1
и input_file_1
.
Если у них это должно быть так:
Workbooks(Filename).Activate
Теперь, если вам нужно добавить имя расширения (например, Filename
значение только Пример):
Workbooks(Filename & ".xls").Activate
Аргумент должен всегда быть в виде строки и быть полным именем файла (с расширением). Хотя цифры (индекс) также принимаются, вы не можете быть уверены, какой индекс относится к какой книге. Еще лучше назначьте его переменной.
Dim otherWB As Workbook
Set otherWB = Workbooks(Filename)
'Set otherWB = Workbooks(Filename & ".xls") '~~> for second scenario above
Edit1: Из комментариев, если Filename
содержит FULLPATH, то это может работать.
Dim Filename1 As String
Filename1 = Split(Filename, "\")(UBound(Split(Filename, "\")))
Workbooks(Filename1).Activate
Шахта содержит расширение .xls, поэтому я использовал решение для первого. Но все же это дает мне индексную ошибку. Ошибка выполнения 9. – lakesh
@lakesh Попробуйте 'Debug.Print Filename', если вы получите то же самое имя файла книги. Также дважды проверьте правильность расширения файла. (например, XL2007 и up имеют расширение '.xlsx'. – L42
Да, значение переменной корректно, потому что я использовал его для открытия файла. – lakesh