Excel 在vba中是否将字符串连接到一系列单元格?

Excel 在vba中是否将字符串连接到一系列单元格?,excel,vba,Excel,Vba,在单元格E1:E25中,我想在vba代码中存在于该范围内的每个单词的末尾加上单词“hi”。以下是我到目前为止的情况: 工作簿(“Test.xlsx”)。工作表(“Sheet1”)。范围(“E1:E25”)。值=工作簿(“Test.xlsx”)。工作表(“Sheet1”)。范围(“E1:E25”)。值+“高” 这给了我一个“不匹配”的错误。我做错什么了吗 我知道有一个函数可以做到这一点,我只想知道VBA的方法。@Tim Williams是正确的。在范围内的单元格上循环并更新值 For Each C

在单元格E1:E25中,我想在vba代码中存在于该范围内的每个单词的末尾加上单词“hi”。以下是我到目前为止的情况:

工作簿(“Test.xlsx”)。工作表(“Sheet1”)。范围(“E1:E25”)。值=工作簿(“Test.xlsx”)。工作表(“Sheet1”)。范围(“E1:E25”)。值+“高”

这给了我一个“不匹配”的错误。我做错什么了吗


我知道有一个函数可以做到这一点,我只想知道VBA的方法。

@Tim Williams是正确的。在范围内的单元格上循环并更新值

For Each Cell In Workbooks("Test.xlsx").Worksheets("Sheet1").Range("E1:E25")
   Cell.Value = Cell.Value + "hi"
Next
添加后缀
  • 将这两个过程复制到标准模块
  • 调整第一个步骤中的值
  • 只运行第一个过程,第二个过程正在被调用(由 首先)
代码

Option Explicit

Sub addHi()
    Dim rng As Range
    Set rng = Workbooks("Test.xlsx").Worksheets("Sheet1").Range("E1:E25")
    addSuffix rng, "Hi"
End Sub

Sub addSuffix(ByRef DataRange As Range, ByVal Suffix As String)
    Dim Data As Variant, i As Long, j As Long
    ' Write values from range to array.
    Data = DataRange.Value
    ' Loop through rows of array.
    For i = 1 To UBound(Data)
        ' Loop through columns of array.
        For j = 1 To UBound(Data, 2)
            ' Check if current value in array is not an error.
            If Not IsError(Data(i, j)) Then
                ' Add suffix.
                Data(i, j) = Data(i, j) & Suffix
                ' Write new current value to the Immediate window (CTRL+G).
                'Debug.Print Data(i, j)
            End If
        Next j
    Next i
    ' Write values from array to range.
    DataRange.Value = Data
End Sub
Range(“E1:E25”)。Value
是一个二维数组-您需要在该数组上循环并向每个元素添加“hi”而不是Tim的意思:“您需要在该数组上循环并向每个元素添加“hi”。-顺便说一句,通过VBA在
范围
中循环会耗费更多的时间来获得更大的范围集。