Excel 在vba中是否将字符串连接到一系列单元格?
在单元格E1:E25中,我想在vba代码中存在于该范围内的每个单词的末尾加上单词“hi”。以下是我到目前为止的情况: 工作簿(“Test.xlsx”)。工作表(“Sheet1”)。范围(“E1:E25”)。值=工作簿(“Test.xlsx”)。工作表(“Sheet1”)。范围(“E1:E25”)。值+“高” 这给了我一个“不匹配”的错误。我做错什么了吗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
我知道有一个函数可以做到这一点,我只想知道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在范围
中循环会耗费更多的时间来获得更大的范围集。