Excel VBA中的替换函数用于单元格范围

SMP*_*MPH 4 excel vba excel-vba

我必须在excel文件中用另一个字符替换一个字符.

我使用了以下replace功能,但由于某些单元格中超过1024个字符限制,它会停在那里.

Sub Replace()

    With Sheets("Sheet1").Range("A1:A629")   

      .Cells.Replace ",", ";", xlPart, xlByRows, False

    End With

End Sub 
Run Code Online (Sandbox Code Playgroud)

我知道Substitute功能会怎么做

Cells(1, 2) = "=SUBSTITUTE(A1,"","","";"")"
Run Code Online (Sandbox Code Playgroud)

但是我如何将其用于细胞范围.

谢谢

San*_*osh 7

试试这个

Sub Replace()

    Dim rng As Range, cell As Range
    Set rng = Sheets("Sheet1").Range("A1:A629")

    For Each cell In rng
        cell = WorksheetFunction.Substitute(cell, ",", ";")
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


psi*_*i75 5

尝试这个。请注意,它使用了VBA Replace功能,因此您需要重命名“替换”子例程。

Sub ReplaceText()

    For Each c In Sheets("Sheet1").Range("A1:A629").Cells

      c = Replace(c.Value, ",", ";")

    Next c

End Sub
Run Code Online (Sandbox Code Playgroud)

注意:仅当您在单元格中有值而不是公式时,这才起作用。因为Excel的公式长度限制为1024个字符。但是,鉴于您有此特定错误,您的单元格一定不能是公式。