Function ConcatinateAllCellValuesInRange(sourceRange As Excel.Range) As String
Dim finalValue As String
Dim cell As Excel.Range
For Each cell In sourceRange.Cells
finalValue = finalValue + CStr(cell.Value)
Next cell
ConcatinateAllCellValuesInRange = finalValue
End Function
例如,您可以这样称呼它:
Sub MyMacro()
MsgBox ConcatinateAllCellValuesInRange([A1:C3])
End Sub
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我在我的问题中找到了解决方案(上图),但我不知道将细胞的值放在哪里。
我必须将水平单元格的文本添加到一个单元格中。
例如,a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 我需要将它们按顺序添加到一个单个单元格中
答案 0 :(得分:0)
您需要使用Union。所以,在一个单元格中,例如:
=ConcatinateAllCellValuesInRange((A1:A4,B1:B4,C1:C4))
^ ^
请注意,范围在内部括号中,因此它们可以被函数解释为单个参数。
在你的宏中,你可以使用类似的东西:
MsgBox ConcatinateAllCellValuesInRange(Range("a1:a4, b1:b4, c1:c4"))
答案 1 :(得分:0)
使用此
Function ConcatRange(ParamArray m()) As String
Dim p As Integer, x As Integer, v
Dim nr As Integer, nc As Integer, s As String
Dim r As Integer, c As Integer
p = UBound(m)
s = ""
For x = 0 To p
nr = m(x).Rows.Count
nc = m(x).Columns.Count
v = m(x)
For r = 1 To nr
For c = 1 To nc
s = s & v(r, c)
Next
Next
Next
ConcatRange = s
End Function
在VBA中称之为:
s = ConcatRange(Range("A1:A4"), Range("B1:B4"),Range("C1:C4") )
并在Excel中
=ConcatRange(A1:A4;B1:B4;C1:C4)