【发布时间】:2017-12-18 12:46:48
【问题描述】:
我正在尝试创建 Excel VBA 代码来查找粗体文本并在找到的文本周围添加 html 粗体标记。
示例:
查找:“这个粗体字”和
替换为:“This <b>bold</b> word”(html标签和word都需要加粗)
注意:粗体文本在非粗体文本的单元格内,只应替换粗体文本。
我还需要换一种方式。意思是查找带有或不带有粗体字体的粗体标签 (<b></b>),并删除标签并确保文本为粗体。
找到了this,看起来很接近,但我对ActiveDocument.Tables(1).Select 和.Wrap = wdFindStop 有疑问。
我还发现了this,它可能有助于查找/替换文本而不会丢失粗体格式,但不完全是我需要的。对于我想要做的事情来说,这可能有点矫枉过正。
我正在做一些事情。
Sub removeboldaddHtml()
lastrow = Range("A1").End(xlDown).Row
For i = 1 To lastrow
msg = ""
For j = 1 To Len(Cells(i, 1))
If Range("A" & i).Characters(j, 1).Font.Bold = True Then
msg = msg & Mid(Cells(i, 1), j, 1)
End If
Next j ' next character
If msg <> "" Then
Cells(i, "B").Value = "<b>" & msg & "</b>"
End If
Next i ' next row
End Sub
【问题讨论】:
-
您是在 Excel 还是 Word 中工作?
-
我认为正则表达式可能会有所帮助,但我不确定。
-
您需要遍历单元格的字符集合并检查每个字符以查看粗体格式的开始和结束位置。如果您在执行过程中添加/删除“”,这并不简单,因为您必须在添加/删除时不断调整索引。
-
Robin,正在尝试创建 Excel VBA 宏以在另一个 excel 中查找/替换文本。
-
Tim,你有什么例子可以提供给我吗?