|
本帖最后由 天地一相 于 2024-7-10 18:45 编辑
感谢帮助。一个EXCEL文件里有多张表簿,有时候鼠标太快会误点拖动改变了位置。请教:是否可以有一段代码防止已经放置好的表簿发生变化,若变化了,就不许保存,这样一旦保存,就弹窗,我就知道误点了。
另:我的表簿都命名过的,摆放的顺序就是VBA里能看到的表簿1,2,3,4,5,6,等显示的先后顺序。
- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
-
- Dim Arr As Variant, Ws As Worksheet, n%
-
- n = 0
- Arr = Array("主表", "月表", "季表")
- For Each Ws In ThisWorkbook.Worksheets
- If Ws.Name <> Arr(n) Then
- MsgBox "表簿位置改变,不可保存!"
- Cancel = True
- Exit For
- End If
- n = n + 1
- Next Ws
-
- If Application.WorksheetFunction.CountA(Sheet2.Range("A3:I25")) > 0 Then
- MsgBox "查阅状态,不可保存!"
- Cancel = True
- Exit Sub
- End If
-
- Beep
- End Sub
复制代码
|
|