另存为语法和range.select索引语法?

时间:2011-08-21 19:16:13

标签: arrays excel-vba save-as vba excel

我正在尝试编写一些在excel中选择范围的代码行,但是该范围的索引有任何建议的语法错误?此外,我正在尝试将XML文件保存为xlsm文件,文件名来自存储在数组中的两个文件名的连接,并且得到类似的错误。任何建议??

        Range (Allfiles(index)).select 'Allfiles is an array containing the file names ' type error


        Activeworkbooks.saveas "c:\Allfiles(1):&:Allfiles (count).xlsm", fileformat=52 'error

1 个答案:

答案 0 :(得分:0)

当您收到“错误”时,有用的“错误消息”会提示您问题是什么。通过阅读此消息并对其进行操作,您可以逐步调试代码。

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版本。您可能知道:在Windows中的路径中是非法字符?

无论如何,我不确定你在哪里试图保存这个文件。我最好的猜测:

ActiveWorkbook.SaveAs "C:\" & Allfiles(1) & Allfiles(UBound(Allfiles)) & ".xlsm", _
    FileFormat:=52

至于你的第一行代码Range (Allfiles(index)).Select,我不知道你在那里尝试做什么。您可能需要阅读Excel-VBA的帮助文件以了解Range的作用。