gpt4 book ai didi

excel - 使用VBA替换字符串中特定位置的文本

转载 作者:行者123 更新时间:2023-12-04 19:58:41 24 4
gpt4 key购买 nike

我想通过指定子字符串 (substring_a) 的位置和长度,将字符串中的子字符串 (substring_a) 替换为另一个子字符串 (substring_b)。

我正在尝试使用 Mid 函数,但它似乎不起作用,除非 substring_b 等于或长于 substring_a

这是我的代码:

Sub Test_Mid()
Dim starting_text As String
Dim replacement_text As String

starting_text = "Long Starting Text"
replacement_text = "End"

Mid(starting_text, 6, 8) = replacement_text
MsgBox (starting_text)

End Sub

我希望代码返回“Long End Text”,但它却返回“Long Endrting Text”。

我该如何解决这个问题?

注意:以上是一个说明性的例子。我不能直接对 replacement_text 使用 Replace 函数,因为在我的实际宏中,replacement_text 是可变的。

最佳答案

您正在将简单的事情变得过于复杂。所需要的只是一个简单的替换。

starting_text = Replace(starting_text, "Starting", "End")

要仅替换第一次出现,请使用:

starting_text = Replace(starting_text, "Starting", "End", 1, 1)

或者如果它只是一次出现,从一个特定的位置开始,使用这个:

starting_text = Replace(starting_text, "Starting", "End", Instr(starting_text, "Starting"), 1)

或者,如果它只是一次出现,从特定位置开始,并且您不希望它区分大小写,请使用:

starting_text = Replace(starting_text, "Starting", "End", Instr(starting_text, "Starting", vbTextCompare), 1, vbTextCompare)

VBA Replace Function

关于excel - 使用VBA替换字符串中特定位置的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58770777/

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