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

时间:2013-07-10 01:57:01

标签: excel-vba vba excel

我必须在excel文件中将一个字符替换为另一个字符。

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

Sub Replace()

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

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

    End With

End Sub 

我知道Substitute函数会做什么

Cells(1, 2) = "=SUBSTITUTE(A1,"","","";"")"

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

由于

2 个答案:

答案 0 :(得分: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

enter image description here

答案 1 :(得分:5)

试试这个。请注意,它使用VBA Replace函数,因此您需要重命名'Replace`子例程。

Sub ReplaceText()

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

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

    Next c

End Sub

注意:只有在单元格中有值,没有公式时,这才有效。因为Excel具有公式length limit of 1024 characters。但鉴于您有这个特定错误,您的单元格不能是公式。