VBA - 设置时所需的对象错误.DisplayAlerts = False

时间:2013-08-07 17:01:00

标签: vba excel-vba sas excel

背景:

我主要是一名SAS程序员(统计软件),但我正在使用VBA与SAS合作。我编写了一个程序,我可以使用以下代码在SAS中执行:

*Batch Convert Excel files to CSV files;
%LET xlsfile=C:\xlsfile.csv;
%LET csvfile=C:\csvfile.csv;
%LET worksheet=1;
x 'cd "C:\location_of_vbsfile"';
x "vbsfile.vbs &xlsfile &worksheet &csvfile";

程序打开一个excel文件,选择所需的工作表,替换逗号,回车符和换行符,然后将文件保存为csv文件,这样我就可以很好地将文件导入SAS。

问题:

我想消除可能产生的任何消息框。我在程序的顶部添加了Application.DisplayAlerts = False,以防止显示消息框。但是,我收到以下错误,所以必定是错误的。

Error:      Object required: 'DisplayAlerts'

这是我的代码:

'1  - Open Excel
Dim oExcel
Dim oBook
Set oExcel = CreateObject("Excel.Application")

'THIS IS WHAT I ADDED
Set oExcel.DisplayAlerts = False

Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
xlSheet = Wscript.Arguments.Item(1)*1

'2  - Select Sheet
oBook.Worksheets(xlSheet).Select

'3  - Find and Replace
oBook.Worksheets(xlSheet).Cells.Replace ",", ""
oBook.Worksheets(xlSheet).Cells.Replace chr(13), ""
oBook.Worksheets(xlSheet).Cells.Replace chr(10), ""

'4  - Save
oBook.SaveAs WScript.Arguments.Item(2), 6
oBook.Close False
Set oExcel.DisplayAlerts = True
oExcel.Quit

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

不要使用" Set"在它之前。 Set用于实际对象。

只需:

oExcel.DisplayAlerts = True