运行 保存时的工作表模块

Run Worksheet Modules on Save

我有一个当前 运行 在 4 个工作表中的宏,它突出显示特定范围内的单元格行(每个工作表的范围不同),但要保持工作表看起来干净,不要留下突出显示当我在包含宏的每个工作表中单击单元格 A6 时,它内置了一条线,告诉它清除突出显示。我的问题是让其他使用工作表的人遵循这种方法,所以我想看看是否有办法在保存文件时使用 Workbook_BeforeSave 工作簿函数清除工作表上的所有突出显示。

有没有办法从工作簿模块迭代每个工作表中存在的 "clear formatting" 子项?工作表模块中的清除代码如下(但我似乎无法在工作簿模块中运行):

Dim bInRange As Boolean
Static rOld As Range

If Not bInRange Then
Set rOld = Nothing
Exit Sub
End If

为您的代码创建一个子程序。像这样。

Private sub RunMyCode()
    Dim bInRange As Boolean
    Static rOld As Range

    If Not bInRange Then
        Set rOld = Nothing
        Exit Sub
    End If
End sub

Private Sub Workbook_BeforeClose(Cancel as Boolean)
    'Call it before your workbook is closed
    RunMyCode
End Sub

你可以运行这样的代码

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

call sheet1.clear_formatting
call sheet2.clear_formatting
call sheet3.clear_formatting
call sheet4.clear_formatting
end sub

sheet1 是 sheet 的代码名称,您也可以使用 sheets("sheet1")。clear_formatting 如果这样更容易

或者如果你有很多 sheet 你可以做

for each ws in activeworkbook.sheets
    call ws.clear_formatting
next