【问题标题】:VBA - object required error when setting .DisplayAlerts = FalseVBA - 设置.DisplayAlerts = False时需要对象错误
【发布时间】:2013-08-07 17:01:00
【问题描述】:

背景:

我主要是一名 SAS 程序员(一种统计软件),但我正在使用 VBA 使 excel 与 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

有什么建议吗?

【问题讨论】:

    标签: vba excel sas


    【解决方案1】:

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

    只是:

    oExcel.DisplayAlerts = True
    

    【讨论】:

    • 我已经尝试过了,但又遇到了另一个错误。我只是再次尝试并将 oExcel.DisplayAlerts = True 一直移动到代码的底部并且它起作用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多