2011-08-21 26 views
0

我想寫一些選擇在Excel中的範圍的代碼行,但範圍的索引有語法錯誤的任何建議?另外我試圖將XML文件另存爲一個xlsm文件,其中包含兩個文件名存儲在一個數組中的文件名,並且出現類似的錯誤。另存爲語法和range.select索引語法?

 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 

回答

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的功能。