在保存上运行工作表模块

我有一个当前正在运行的4个工作表中的macros,它突出显示特定范围内的单元格行(每个工作表的范围不同),但要保持工作表的外观清洁,不要让它内置的高亮显示一行它清除突出显示当我单击包含该macros的每个工作表中的单元格A6时。 我的问题是让其他使用工作表的人跟着这个方法,所以我想看看是否有办法使用Workbook_BeforeSave工作簿函数来清除文件保存时在工作表上的所有突出显示。

有没有办法来迭代工作簿模块中每个工作表中存在的“清除格式”子? 工作表模块中的清除代码如下(但我似乎无法让它在工作簿模块内工作):

Dim bInRange As Boolean Static rOld As Range If Not bInRange Then Set rOld = Nothing Exit Sub End If 

为您的代码创build一个子。 像这样的东西。

 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是该工作表的代码名称,您也可以使用工作表(“sheet1”)。clear_formatting如果更容易

或者如果你有很多床单,你可以做

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