保存

时间:2015-07-17 14:57:32

标签: excel vba excel-vba formatting automated-deployment

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

有没有办法从Workbook模块迭代每个工作表中存在的“清除格式”子?工作表模块中的清除代码如下(但我似乎无法在工作簿模块中使其运行):

Dim bInRange As Boolean
Static rOld As Range

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

2 个答案:

答案 0 :(得分:2)

为您的代码创建一个子。这样的事情。

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

答案 1 :(得分:1)

您可以像这样运行代码

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