我有一个电子表格 xlsm“My_workfile1”,我想将此文件另存为“My_final_workfile_1.xlsm”。
我想将所有数据保存在“My_final_workfile_1”中,并在关闭后将初始文件“My_workfile1”中的单元格 C4、C6、C7、C11、C12 为空。
我的代码是:
Sub logFormState()
Sheets("1 - Feuille de Suivi ").Range("C4") = ""
Sheets("1 - Feuille de Suivi ").Range("C6") = ""
Sheets("1 - Feuille de Suivi ").Range("C7") = ""
Sheets("1 - Feuille de Suivi ").Range("C11") = ""
Sheets("1 - Feuille de Suivi ").Range("C12") = ""
End Sub
Public Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Name = "My_workfile1" Then
Call logFormState
End If
End Sub
但是Me.Name
功能不起作用。我想知道我的代码是否正确。谢谢您的帮助!
最佳答案
工作簿 BeforeClose
Workbook.BeforeClose event
Workbook.SaveCopyAs method
Immediate
中显示名称(以及文件夹路径和文件路径)。窗口 (CTRL+G)。代码
Option Explicit
Sub DebugPrint()
With ThisWorkbook
Debug.Print "Workbook:"
Debug.Print """" & .FullName & """"
Debug.Print """" & .Path & """"
Debug.Print """" & .Name & """"
Debug.Print "Worksheet Names:"
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Debug.Print """" & ws.Name & """"
Next ws
End With
End Sub
Sub logFormState()
' Note that this worksheet name ends with a space!
With ThisWorkbook.Worksheets("1 - Feuille de Suivi ")
.Range("C4,C6,C7,C11,C12") = ""
' Either save here...
.Parent.Save
End With
End Sub
Public Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Name = "My_workfile_1.xlsm" Then
' Change the path if necessary.
Me.SaveCopyAs Me.Path & "\" & "My_final_workfile_1.xlsm"
Call logFormState
'... or save here:
'.Save
End If
End Sub
关于excel - VBA : Me. 名称函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66562726/