VBA在保存工作簿之前删除特殊字符

时间:2015-06-16 19:37:32

标签: vba excel-vba special-characters excel

我发现此功能可以删除特殊字符。

Function Remove_Characters(s As String) As String
Static RegEx As Object
    If RegEx Is Nothing Then
        Set RegEx = CreateObject("VBScript.RegExp")
        With RegEx
        .Global = True
        .Pattern = "\\|/|:|\*|""|\?|<|>\|| "
        End With
    End If
Remove_Characters = RegEx.Replace(s, "")
End Function

我想知道的是如何在保存工作簿之前使用它来自动删除特定单元格范围内的所有特殊字符(B47:L47,B51:L148)?

2 个答案:

答案 0 :(得分:0)

您可能希望使用Workbook_BeforeSave事件。只要有人推送保存,此代码就会运行。下一步是遍历您的范围并运行您的功能。

可以找到类似的答案:Excel VBA - Run macro before save

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ 
        Cancel as Boolean) 
    a = MsgBox("Do you really want to save the workbook?", vbYesNo) 
    If a = vbNo Then Cancel = True 
End Sub

答案 1 :(得分:0)

请阅读我对这个问题的评论。这应该可以帮到你:

Dim rng As Range, c As Range
Set rng = ThisWorkbook.Worksheets("Arkusz1").Range("B47:L47,B51:L148")
For Each c In rng.Cells
    c.Value = Remove_Characters(c.Value)
Next c