excel 替换长字符串值

dm7nw8vv  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(158)

我有许多行的第一个单元格(A列)具有长字符串值(大约100个字符)
我正在尝试用较短的字符串值替换这些长字符串值:

Sub text_replacement()

Dim row As Range
Dim sheet As Worksheet
Set sheet = ActiveSheet

For i = 1 To sheet.UsedRange.Rows.Count

    Set row = sheet.Rows(i)
    If Cells(i, 1) = "This is a long string value*" Then
        Cells(i, 1).Value = "Short and standard value"
    End If

Next i

End Sub

我使用“*”是因为所有这些长字符串值总是以相同的开头。我不知道什么不起作用,但下面的代码对值没有任何影响(它也没有给予我任何错误)

ryevplcw

ryevplcw1#

通配符不适用于=,但是使用Range.Replace效率更高,它支持通配符,并且没有循环。

ActiveSheet.Range("A:A").Replace _
   What:="This is a long string value*", _
   Replacement:="Short and standard value", _
   LookAt:=xlWhole
62o28rlo

62o28rlo2#

你希望字符串末尾的*匹配该字符串之后的任何值。这不是=比较器的工作方式。=要求值完全相同。
您要检查字符串是否以键值开头。在VBA中,可以通过以下几种方式完成此操作-检查此问题的答案:
Test if string begins with a string?

相关问题