我使用excel编辑表格数据并使用版本控制跟踪更改。每次我在xls(x)中进行更改时,我必须转到File-> Export,然后excel继续编辑导出的文件而不是xls(x)。
我想excel每次保存我的xls(x)表时自动导出我的工作表的文本版本,并继续编辑xls(x)。我如何实现这一目标?
编辑:
我将文件保存为启用宏的文件(xlsm),启用了宏并遵循John Coleman的建议,将以下代码(ref)插入VBAProject-> ThisWorkbook:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
Dim s As String
s = ActiveWorkbook.FullName
s = Replace(s, "xlsm", "txt")
ActiveWorkbook.SaveAs Filename:=s, FileFormat:=xlText
Application.DisplayAlerts = True
End Sub
但活动工作簿成为txt文件(excel紧随其后崩溃)。有没有办法导出并继续编辑原始文件?
答案 0 :(得分:1)
将文件另存为启用宏的文件(xlsm),启用宏,转到Developer-> Visual Basic并将以下代码插入VBAProject-> ThisWorkbook:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim sh As Worksheet
Set sh = Application.ActiveSheet
Dim s As String
s = ActiveWorkbook.FullName
s = Replace(s, "xlsm", "txt")
Dim wb As Workbook
Set wb = Application.Workbooks.Add
sh.Copy After:=wb.Sheets(wb.Sheets.Count)
wb.SaveAs Filename:=s, FileFormat:=xlText, CreateBackup:=False
wb.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub