在Excel VBA中,BeforeSave事件确实不会自动填充数据。然而,我们可以在BeforeSave事件中编写代码来填充数据。
以下是一个示例解决方法:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' 在保存前填充数据
Dim ws As Worksheet
Dim lastRow As Long
Dim rng As Range
' 设置要填充数据的工作表
Set ws = ThisWorkbook.Sheets("Sheet1")
' 确定要填充数据的最后一行
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 设置要填充数据的范围
Set rng = ws.Range("A1:A" & lastRow)
' 填充数据
rng.Value = "Data"
' 保存时取消保存对话框
SaveAsUI = False
' 取消保存操作
' Cancel = True
End Sub
上述代码将在保存工作簿之前,在"A1"到最后一行单元格中填充数据。
要使用该代码,请按照以下步骤操作:
Alt + F11
打开VBA编辑器。这样,在保存工作簿时,BeforeSave事件将触发,并填充数据到"A1"到最后一行单元格中。