我有一个用于访问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
它可以工作,但是会弹出一个弹出窗口,以确认保存文件。
当我更改代码以使用“ Application.DisplayAlerts”
{{1}}
我收到以下错误:找不到方法或数据成员
我是VBA编码的新手(显然),有人可以帮助我解决这个问题吗?谢谢!
答案 0 :(得分:0)
Application
在此上下文中为Access.Application
(不是Excel.Application
),并且Access.Application
没有{{1 }}成员(与Excel不同)。DisplayAlerts
方法来保存工作簿本身。如果需要,请使用Workbook.SaveAs
(这也意味着您不需要切换Workbook.Save
)。另外,DisplayAlerts
有一个Workbook.Close
参数,您可以向其中传递SaveChanges
或True
。我认为下面的代码(我在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
。
我假设您要更改第一个工作表上单元格的数字格式。如果该工作表具有名称,则最好使用名称来引用它(比起像我一样通过索引来引用)。