1
我知道这是完全错误的,但此刻,我真的不知道该怎么做。VBA(Microsoft Excel)将字符串替换为字符串
在Microsoft Excel中,我想通过固定字符串“NewValue”替换“OldValues”字符串上的所有值。这怎么可能?
LBound和Ubound被错误地使用,对吧?
Sub Replace()
Dim sht As Worksheet
Dim OldValues As Variant
Dim NewValue As String
Dim x As Long
OldValue = Array("old1","old2","old3")
NewValue = "allnew!"
For x = LBound(OldValue) To UBound(NewValue)
For Each sht In ActiveWorkbook.Worksheets
sht.Cells.Replace What:=OldValue(x), Replacement:=NewValue(x), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Next sht
Next x
End Sub
不错的一个。不知道LBound&Ubound的函数是否正确(据我了解,它们的存在是为了在数组上创建循环),所以我不知道如何使它工作。 –
当与一个数组一起使用时,它们指向上下的索引边界,所以对于Array(“old1”,“old2”,“old3”)的数组,'LBound'将为0,UBound将为2 – Jordan
@MiguelRasquinho也可以使用变量类型的变量和For Each Loop循环遍历数组。 'Dim x as Variant:For Each x in OldValues' – 2016-08-02 09:00:28