У меня есть код в VBA, который копирует листы с одним и тем же именем из разных книг в одну книгу. Книги, которые извлекаются из кода, находятся в одной папке. Код отлично работает в Excel 2010, но когда я запускаю его в Excel 2013, я получаю следующее сообщение об ошибке 1004: «Извините, мы не смогли найти .... xlsx. Возможно ли, что он был перемещен, переименован или удален. " Я не уверен, где начать поиск и устранение неисправностей. Кто-нибудь сталкивается с этой проблемой или имеет какие-либо идеи, почему она отлично работает в Excel 2010, а не в Excel 2013? Спасибо.Код VBA работает в Excel 2010, но не Excel 2013
Sub CombineSheets()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim sPath As String
Dim sFname As String
Dim wBk As Workbook
Dim wSht As Variant
Application.EnableEvents = False
Application.ScreenUpdating = False
sPath = "PathName\Inputs"
ChDir sPath
sFname = "*"
sFname = Dir(sPath & "\" & sFname & ".xlsx*", vbNormal) <Code bombs here>
wSht = ("Risks")
Do Until sFname = ""
Set wBk = Workbooks.Open(sFname)
Windows(sFname).Activate
Sheets(wSht).Copy Before:=ThisWorkbook.Sheets(1)
wBk.Close False
sFname = Dir()
Loop
ActiveWorkbook.Save
Application.EnableEvents = True
Application.ScreenUpdating = True
Вы уверены, что файл, он пытается ссылаться все еще существует, в том же месте? –
Если вы нажмете на указанную вами линию, вероятно, что у вас нет папки с именем 'Pathname' в качестве подкаталога текущего каталога или что' PathName' не имеет подкаталога с именем 'Inputs' , Вы подтвердили, что оба на самом деле существуют? Обратите внимание, что вы создали 'PathName' относительный каталог (то есть он должен существовать в той же папке, в которой выполняется ваш код). –
Я уверен, что ссылка все еще существует, и ничего не изменилось с тех пор, как я ее последний раз запускал в Excel 2010. Код будет использоваться в 2013 году, поэтому я пытаюсь выяснить, какая разница. Есть ли другая настройка, которую мне нужно изменить? – AMol