我有许多行的第一个单元格(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
我使用“*”是因为所有这些长字符串值总是以相同的开头。我不知道什么不起作用,但下面的代码对值没有任何影响(它也没有给予我任何错误)
2条答案
按热度按时间ryevplcw1#
通配符不适用于
=
,但是使用Range.Replace
效率更高,它支持通配符,并且没有循环。62o28rlo2#
你希望字符串末尾的
*
匹配该字符串之后的任何值。这不是=
比较器的工作方式。=
要求值完全相同。您要检查字符串是否以键值开头。在VBA中,可以通过以下几种方式完成此操作-检查此问题的答案:
Test if string begins with a string?