Когда вы получаете «ошибку», полезное «сообщение об ошибке» подскажет вам, в чем проблема.Прочитав это сообщение и действуя по нему, вы можете пошагово отлаживать свой код.
Activeworkbooks.SaveAs "c:\Allfiles(1):&:Allfiles (count).xlsm", FileFormat = 52
' Variable not defined ^
Способ указания аргументов в VBA - с :=
, а не =
.Давайте исправим это и запустим снова ...
Activeworkbooks.SaveAs "c:\Allfiles(1):&:Allfiles (count).xlsm", FileFormat:=52
' ^ Variable not defined
Это называется ActiveWorkbook
, а не Activeworkbooks
.Давайте исправим это и запустим еще раз ...
ActiveWorkbook.SaveAs "c:\Allfiles(1):&:Allfiles (count).xlsm", FileFormat:=52
' ^ The file could not be accessed.
Я не могу утверждать, что точно знаю, на какой ОС вы работаете, но, учитывая C:\
, я предполагаю некоторую разновидностьОкна.Возможно, вы знаете, что :
является недопустимым символом в путях в Windows?
Во всяком случае, я не уверен, где вы пытаетесь сохранить этот файл.Мое лучшее предположение:
ActiveWorkbook.SaveAs "C:\" & Allfiles(1) & Allfiles(UBound(Allfiles)) & ".xlsm", _
FileFormat:=52
Что касается первой строки кода, Range (Allfiles(index)).Select
, я понятия не имею, что вы пытаетесь там делать.Вы можете прочитать файл справки Excel-VBA, чтобы узнать, что делает Range
.