使用“ Application.DisplayAlerts = False给出”找不到方法或数据成员“的编译错误

时间:2019-04-13 20:26:34

标签: excel vba

我有一个用于访问Excel电子表格中的格式单元格的模块。

Sub FormatData()

Application.DisplayAlerts = False
Workbooks.Open FileName:="C:\Users\john.doe\Documents\scripts\apps\allow\Weekly_Cash_Trending"

Workbooks("Weekly_Cash_Trending.xlsx").Activate


Columns("C:C").Select
Selection.NumberFormat = "$#,##0"
Range("A1").Select

ActiveWorkbook.SaveAs FileName:="C:\Users\john.doe\Documents\scripts\apps\allow\Weekly_Cash_Trending"
Application.DisplayAlerts = True
End Sub

它可以工作,但是会弹出一个弹出窗口,以确认保存文件。

in this github repository

当我更改代码以使用“ Application.DisplayAlerts”

{{1}}

我收到以下错误:找不到方法或数据成员

Excel message

我是VBA编码的新手(显然),有人可以帮助我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

  • 您正在Access中进行编码,因此我的理解是,Application在此上下文中为Access.Application(不是Excel.Application),并且Access.Application没有{{1 }}成员(与Excel不同)。
  • 您似乎正在调用DisplayAlerts方法来保存工作簿本身。如果需要,请使用Workbook.SaveAs(这也意味着您不需要切换Workbook.Save)。另外,DisplayAlerts有一个Workbook.Close参数,您可以向其中传递SaveChangesTrue

我认为下面的代码(我在Access中编写和测试)应该可以满足您的要求。

False

根据您的代码,我假设您已经在Access for Excel的对象库中添加了一个引用。如果没有,请在Access中打开VB编辑器,然后打开Option Compare Database Option Explicit Sub FormatData() With New Excel.Application ' Add reference to Excel Object Model for early binding '.Visible = True ' Uncomment if you want to see it happening With .Workbooks.Open(FileName:="C:\Users\john.doe\Documents\scripts\apps\allow\Weekly_Cash_Trending") .Worksheets(1).Range("C:C").NumberFormat = "$#,##0" .Close True ' Passing True here means we want to save changes as we close the workbook End With .Quit End With End Sub

我假设您要更改第一个工作表上单元格的数字格式。如果该工作表具有名称,则最好使用名称来引用它(比起像我一样通过索引来引用)。