Excel在工作簿中交换两个字符串

时间:2017-04-11 13:16:08

标签: excel vba excel-vba shell

我正在尝试在Excel中交换整个工作簿(所有工作表)中的两个字符串。我试图更换,但这对我没有帮助。例如:

我想把所有“Apple”文本都写成“Banana”,同时将所有“Banana”文本变为“Apple”。怎么做?

1 个答案:

答案 0 :(得分:1)

轻松!你只需要遍历所有细胞并检查苹果和香蕉。为了更有效地做到这一点,我们将使用数组来使事情变得更快

如果单元格是" apple"我们把它做成香蕉,继续前进,如果细胞是"香蕉",我们做它" apple"。解析使用的范围后,我们将数组粘贴回单元格。

Public Sub ApplesToBananas()
    Dim sh As Worksheet
    Dim cellArray() As Variant
    Dim lRow As Long, lCol As Long

    For Each sh In ActiveWorkbook.Sheets
        cellArray = sh.UsedRange.Value
        For lRow = 1 To UBound(cellArray)
            For lCol = 1 To sh.UsedRange.Columns.Count
                If LCase(cellArray(lRow, lCol)) = "apple" Then
                    cellArray(lRow, lCol) = "banana"
                ElseIf LCase(cellArray(lRow, lCol)) = "banana" Then
                    cellArray(lRow, lCol) = "apple"
                End If
            Next lCol
        Next lRow
        sh.UsedRange.Value = cellArray
    Next sh
End Sub

现在如果你有任何只有1个非空单元格的空白纸张或纸张,它将抛出错误。祝你好运!