- Вы кодируете это в Access, так что я понимаю, что
Application
в этом контексте - Access.Application
(не Excel.Application
) - и Access.Application
не имеет DisplayAlerts
члена (в отличие от Excel). - Вы, похоже, вызываете метод
Workbook.SaveAs
для сохранения поверх самой книги.При необходимости используйте Workbook.Save
(это также означает, что вам не нужно переключать DisplayAlerts
).В качестве альтернативы, Workbook.Close
имеет параметр SaveChanges
, в который можно передать True
или False
.
Я думаю, что приведенный ниже код (я писал и тестировал в Access) должен делать то, что выбыли после.
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
Исходя из вашего кода, я предполагаю, что вы уже добавили ссылку в библиотеку объектов Access for Excel.Если нет, в Access откройте VB Editor, затем Tools > References > Scroll down in the list to Microsoft Excel 16.0 Object Library (or something like that) > Tick it > OK
.
Я предполагаю, что вы хотите изменить форматирование чисел ячеек на первом листе.Если у этого листа есть имя, лучше обратиться к нему по имени (чем по индексу, как я).