【问题标题】:Run Worksheet Modules on Save在保存时运行工作表模块
【发布时间】:2015-07-17 14:57:31
【问题描述】:
我有一个当前在 4 个工作表中运行的宏,它突出显示特定范围内的单元格行(每个工作表的范围不同),但要保持工作表看起来干净并且不要留下它内置的突出显示当我单击包含宏的每个工作表中的单元格 A6 时,该行告诉它清除突出显示。我的问题是让其他使用工作表的人遵循这种方法,所以我想看看是否有办法使用 Workbook_BeforeSave 工作簿函数在保存文件时清除工作表上的所有突出显示。
有没有办法从工作簿模块迭代每个工作表中存在的“清除格式”子?工作表模块中的清除代码如下(但我似乎无法让它在工作簿模块中发挥作用):
Dim bInRange As Boolean
Static rOld As Range
If Not bInRange Then
Set rOld = Nothing
Exit Sub
End If
【问题讨论】:
标签:
vba
excel
formatting
automated-deployment
【解决方案1】:
为您的代码创建一个子。像这样。
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
【解决方案2】:
你可以这样运行代码
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("sheet1").clear_formatting
或者如果你有很多床单,你可以这样做
for each ws in activeworkbook.sheets
call ws.clear_formatting
next