【发布时间】:2021-01-28 00:00:49
【问题描述】:
我正在尝试使用 regEx 来查找日期并在一个范围内的多个单元格的文本中加粗它们,但似乎我没有使用正确的表达式来使用 regEx 加粗文本。下面的代码在除粗体功能之外工作。我需要正则表达式,因为我需要以 yyyy-mm-dd 格式加粗所有日期。我知道下面的正则表达式不正确,但我要在处理下一部分之前让粗体功能正常工作。
我检查了所有其他问题,他们都避免使用正则表达式进行粗体显示。
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
【问题讨论】:
-
RegEx 查找文本。文本位于单元格中。该单元格具有
Font属性,该属性具有Bold属性。那么,变量mc中有什么?如果可以从该集合中提取单元格地址,则可以使用MyCell.Font.Bold = True之类的代码来更改字体粗细。就目前情况而言,没有理由相信mc直接持有一个范围对象,因为您分配给它的是文本。 -
日期是单独在单元格中,还是包含在其他文本中?你想加粗整个单元格文本,还是只加粗日期部分?