изменение кода, так что теперь он откроет файл xlsm - PullRequest
0 голосов
/ 15 октября 2018

Мой текущий код прекрасно открывает файл XLS, но теперь мы получаем файлы в формате xlsm.Я попытался просто изменить код с .xls на .XLSM, но он сообщает, что файл не может быть найден.

Вот текущий код:

Sub CopyRangeToAnotherSheet()
Dim wbTarget As Workbook
Dim wbThis As Workbook

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

Set wbThis = ActiveWorkbook
Set wbThis = Workbooks.Open(Range("Z1") & Range("AA1") & ".xls")
Sheets("Sheet1").Range("a1:m10000").Copy

Set wbTarget = ThisWorkbook
wbTarget.Sheets("Sheet1").Range("a1").PasteSpecial
Paste:=xlPasteValues
Sheets("sheet1").Activate
Application.CutCopyMode = False
wbThis.Close
 Sheets("Menu Tab").Activate
End Sub

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 15 октября 2018

Попробуйте отловить ошибку и попробовать новое расширение:

Sub CopyRangeToAnotherSheet()
Dim wbTarget As Workbook
Dim wbThis As Workbook

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

Set wbThis = ActiveWorkbook
On Error Goto open_xlsm
Set wbThis = Workbooks.Open(Range("Z1") & Range("AA1") & ".xls")
On Error Goto 0  ' resume normal error "handling"
Goto open_done
open_xlsm:
On Error Goto 0
Set wbThis = Workbooks.Open(Range("Z1") & Range("AA1") & ".xlsm")    
open_done:
Sheets("Sheet1").Range("a1:m10000").Copy

Set wbTarget = ThisWorkbook
wbTarget.Sheets("Sheet1").Range("a1").PasteSpecial
Paste:=xlPasteValues
Sheets("sheet1").Activate
Application.CutCopyMode = False
wbThis.Close
 Sheets("Menu Tab").Activate
End Sub

Это проверит файлы foo.xsl и foo.xslm в указанном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...