VBA 在保存工作簿之前删除特殊字符
VBA to remove special characters before saving workbook
我发现这个函数可以去除特殊字符。
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)中的所有特殊字符?
您可能希望使用 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
请阅读我对问题的评论。这应该可以帮助您:
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
我发现这个函数可以去除特殊字符。
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)中的所有特殊字符?
您可能希望使用 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
请阅读我对问题的评论。这应该可以帮助您:
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