0

我正在尝试编写一些代码行来选择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
4

1 回答 1

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作用。

于 2011-08-22T07:50:04.070 回答