【发布时间】:2017-11-14 11:53:56
【问题描述】:
您好,我正在研究如何编辑我的代码,而不是将字符串开头的字体颜色变为红色和粗体,而是将这些字符串粘贴到另一个工作表中,但是每当我尝试编辑它时,我总是最终出现运行时错误。任何帮助将不胜感激,这是我当前的代码:
Sub colorText()
Dim cl As Range
Dim startPos As Integer
Dim totalLen As Integer
Dim searchText As String
Dim endPos As Integer
Dim testPos As Integer
' specify text to search.
searchText = "(9)"
' loop trough all cells in selection/range
For Each cl In Range("A:A")
totalLen = Len(searchText)
startPos = InStr(cl, searchText)
testPos = 0
Do While startPos > testPos
With cl.Characters(startPos, totalLen).Font
.FontStyle = "Bold"
.ColorIndex = 3
End With
endPos = startPos + totalLen
testPos = testPos + endPos
startPos = InStr(testPos, cl, searchText, vbTextCompare)
Loop
Next cl
End Sub
【问题讨论】:
-
在 VBA 中使用过滤器应该能够快速完成,并且可能不需要循环。您的数据是否从单元格 A1 开始?测试列中没有标题吗?
-
我建议不要使用整个列,因为范围可能会导致一些问题。 searchText 的位置对您来说很重要,还是只想在使用 cl.value 找到 searchText 时将字符串复制到另一张纸上?
-
我无法用您发布的代码重现您的问题。您的代码的哪一行有错误?您的代码的哪一行是您尝试执行
Copy操作的修改? -
是的,我的数据从单元格 A1 开始并且没有标题,searchText 的位置并不重要,我只想能够创建一个命令,它可以在我的工作表中搜索并复制带有我想要的位的字符串,因为有很多数据要搜索,这将为我节省很多时间。
标签: vba excel copy-paste worksheet-function