gpt4 book ai didi

string - Excel VBA - 从单元格中删除单个字符而不丢失剩余单元格内容的格式

转载 作者:行者123 更新时间:2023-12-04 20:46:49 26 4
gpt4 key购买 nike

我正在尝试删除单元格中第一次出现的“<”和“>”,而不会丢失单元格其余内容的格式。

我在这里找了好几个地方,其他的都没有用。

这就是我想要做的:

说“A1”包含文本:

"This is <a> long string with several <occurrences> of a <special> character."

无论如何,我要做的是从包含它们的第一个单词中删除“>”,并且在完美的世界中删除“<”,同时保持粗体格式以及“<”和“>”在包含它们的下一个单词上。

这只是在我遇到问题的代码之前执行的其他代码。
inTx = Range("A2").Value
outTx = Replace(inTx, "Init_Day", Range("A3").Value)
Range("A2").Value = outTx

替换 <placeholder> text 与实际文本,在本例中为两位数。

这是对我不起作用的代码:
SearchString = Range("A2").Value
Char1 = "<"
Char2 = ">"
For i = 1 To Len(SearchString)
If Mid(SearchString, i, 1) = Char1 Then
startPos = i
Exit For
End If
Next i
For i = 1 To Len(SearchString)
If Mid(SearchString, i, 1) = Char2 Then
endPos = i
Exit For
End If
Next i
Range("A2").Characters(startPos, endPos - startPos).Font.Bold = True
Range("A2").Characters(startPos - 1, 1).Delete

在我到达最后一行之前,所有代码都可以正常工作:
Range("A2").Characters(startPos - 1, 1).Delete

然后什么也没有发生。

我什至尝试过:
Range("A2").Characters(startPos - 1, 20).Delete

依然没有...

我知道这应该很容易,但我似乎无法弄清楚。

提前致谢。

最佳答案

以下代码:

Sub Foo()
Const Char1 As String = "<", Char2 As String = ">"
Dim SearchString As String
Dim i As Integer, startPos As Integer, endPos As Integer
SearchString = Range("A2").Value
startPos = InStr(SearchString, Char1)
endPos = InStr(SearchString, Char2)
Range("A2").Characters(startPos, endPos - startPos).Font.Bold = True
Range("A2").Characters(startPos, 1).Delete
Range("A2").Characters(endPos - 1, 1).Delete
End Sub

变成这样:
Some <bold> text I just <made> up.
进入这个:一些 粗体 我刚刚<编造>的文字。

那是你要找的吗?

关于string - Excel VBA - 从单元格中删除单个字符而不丢失剩余单元格内容的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13150231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com