使用 RegExp 正则表达式的粗体文本
Bold text using RegExp Regular Expressions
我正在尝试使用 regEx 查找日期并在一个范围内的多个单元格的文本中将它们加粗,但似乎我没有使用正确的表达式来使用 regEx 加粗文本。除了粗体功能之外,下面的代码还在工作。我需要正则表达式,因为我需要以 yyyy-mm-dd 格式加粗所有日期。我知道下面的 regEx 表达式不适合执行此操作,但我打算在处理下一部分之前让粗体功能正常工作。
我检查了所有其他问题,他们都避免使用 regEx 加粗。
Sub Bold_a_date2()
Dim ws As Worksheets
Dim item As Variant
Dim arr As Variant
arr = Worksheets("Formatted").Range("M1:M1000")
Dim regEx As New RegExp
regEx.Global = True
regEx.Pattern = "202[0-9]"
Dim text As Variant
Dim mc As MatchCollection, row As Long
row = 1
For Each text In arr
If regEx.test(text) = True Then
Set mc = regEx.Execute(text)
Selection.Font.Bold = True
Debug.Print text
End If
row = row + 1
Next text
End Sub
如果你的数据是日期值,结果会很奇怪。如果数据是文本格式,可以按如下方式进行。
Sub Bold_a_date2()
Dim ws As Worksheets
Dim item As Variant
Dim arr As Range
Dim text As Range
Set arr = Worksheets("Formatted").Range("M1:M1000")
'Set arr = Worksheets("Formatted").Range("i1:i1000")
Dim regEx As New RegExp
regEx.Global = True
regEx.Pattern = "202[0-9]"
Dim mc As MatchCollection, row As Long
Dim m As Match
Dim s As Integer, l As Integer
For Each text In arr
If regEx.test(text) = True Then
Set mc = regEx.Execute(text)
For Each m In mc
s = m.FirstIndex
l = m.Length
text.Characters(s + 1, l).Font.Bold = True
Next m
Debug.Print text
End If
Next text
End Sub
字符串与日期值
多例
我正在尝试使用 regEx 查找日期并在一个范围内的多个单元格的文本中将它们加粗,但似乎我没有使用正确的表达式来使用 regEx 加粗文本。除了粗体功能之外,下面的代码还在工作。我需要正则表达式,因为我需要以 yyyy-mm-dd 格式加粗所有日期。我知道下面的 regEx 表达式不适合执行此操作,但我打算在处理下一部分之前让粗体功能正常工作。
我检查了所有其他问题,他们都避免使用 regEx 加粗。
Sub Bold_a_date2()
Dim ws As Worksheets
Dim item As Variant
Dim arr As Variant
arr = Worksheets("Formatted").Range("M1:M1000")
Dim regEx As New RegExp
regEx.Global = True
regEx.Pattern = "202[0-9]"
Dim text As Variant
Dim mc As MatchCollection, row As Long
row = 1
For Each text In arr
If regEx.test(text) = True Then
Set mc = regEx.Execute(text)
Selection.Font.Bold = True
Debug.Print text
End If
row = row + 1
Next text
End Sub
如果你的数据是日期值,结果会很奇怪。如果数据是文本格式,可以按如下方式进行。
Sub Bold_a_date2()
Dim ws As Worksheets
Dim item As Variant
Dim arr As Range
Dim text As Range
Set arr = Worksheets("Formatted").Range("M1:M1000")
'Set arr = Worksheets("Formatted").Range("i1:i1000")
Dim regEx As New RegExp
regEx.Global = True
regEx.Pattern = "202[0-9]"
Dim mc As MatchCollection, row As Long
Dim m As Match
Dim s As Integer, l As Integer
For Each text In arr
If regEx.test(text) = True Then
Set mc = regEx.Execute(text)
For Each m In mc
s = m.FirstIndex
l = m.Length
text.Characters(s + 1, l).Font.Bold = True
Next m
Debug.Print text
End If
Next text
End Sub