以上论坛汇聚了很多微软 Office 大牛,适合讨论各种技术疑难。
1 Like
感谢推荐
说起来我一直有一个技术问题没解决,通过 COM 接口对 Excel 进行的操作是不能撤销的
为了防止误操作无法挽回,我不得不在 VBA 里放进了几行很变态的代码,每当启动、退出或修改表格时,都自动保存一个备份.不知道现在有没有办法,可以优雅地 Ctrl-z
Public Index As Integer
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Source As Range)
myNowTime = Format(Now, "yyyy-mm-dd" & "—" & "hh-mm-ss") & Right(Format(Timer, "0.000"), 4)
If Not Dir(ThisWorkbook.Path & "\Excel版本历史", vbDirectory) <> "" Then
MkDir ThisWorkbook.Path & "\Excel版本历史"
End If
If Not Dir(ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd"), vbDirectory) <> "" Then
MkDir ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd")
End If
Index = Index + 1
ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd") & "\" & ThisWorkbook.Name & "##" & myNowTime & "(" & Index & ")" & ".xlsm"
ThisWorkbook.Save
End Sub
Private Sub Workbook_Open()
myNowTime = Format(Now, "yyyy-mm-dd" & "—" & "hh-mm-ss") & Right(Format(Timer, "0.000"), 4)
If Not Dir(ThisWorkbook.Path & "\Excel版本历史", vbDirectory) <> "" Then
MkDir ThisWorkbook.Path & "\Excel版本历史"
End If
If Not Dir(ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd"), vbDirectory) <> "" Then
MkDir ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd")
End If
ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd") & "\" & ThisWorkbook.Name & "##" & myNowTime & "(打开)" & ".xlsm"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
myNowTime = Format(Now, "yyyy-mm-dd" & "—" & "hh-mm-ss") & Right(Format(Timer, "0.000"), 4)
If Not Dir(ThisWorkbook.Path & "\Excel版本历史", vbDirectory) <> "" Then
MkDir ThisWorkbook.Path & "\Excel版本历史"
End If
If Not Dir(ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd"), vbDirectory) <> "" Then
MkDir ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd")
End If
ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\Excel版本历史\" & Format(Now, "yyyy-mm-dd") & "\" & ThisWorkbook.Name & "##" & myNowTime & "(关闭)" & ".xlsm"
End Sub
3 Likes
如果是外部com操作,是不行的. 只能你代码自己设置撤销.
如果是打开excel执行的操作, VBA是可以的撤销的.
2 Likes
其实除了office技术疑难,更想知道现在office新UI标题栏这么高,各位大佬有没有办法能够调紧凑点的办法?
可惜都是英文的,楼主可有中文的推荐,早些时候去ExcelHome多些。
1 Like
标题栏带着按钮,不可能调低. 不过 office365可以更改工具栏高度