我是Excel中VBA的新手,但我正在尝试将数据行中的所有值连接成一个文本字符串,我很难搞清楚它。我一直在尝试For-Next循环和Do Until循环来捕获每个单元格值到行的底部,然后将它连接(中间有空格)到一个单元格中,我可以复制并粘贴数据。在此先感谢您的帮助!
Sub String_Acct_Numbers()
Dim AccountNumber As String
Dim StartRow As Integer
Dim NumRows As Integer
NumRows = Range("A1", Range("A2").End(xlDown)).Rows.Count
For StartRow = 2 To NumRows
AccountNumber = Cells(StartRow, 1).Value & " " & Cells(StartRow + 1,
1).Value
Next StartRow
Range("C1") = AccountNumber
End Sub
之前的答案是100%正确,如果你有它可以使用TEXTJOIN
。如果您没有它,那么您可以使用此...
Public Function ConcatenateCells(ByVal rngCells As Range, Optional ByVal strDelimiter As String = " ") As String
Dim objCell As Range
For Each objCell In rngCells
If ConcatenateCells <> "" Then ConcatenateCells = ConcatenateCells & strDelimiter
ConcatenateCells = ConcatenateCells & objCell.Text
Next
End Function
...你可以直接从单元格引用该函数,比运行宏更新单元格更容易,是的,已经记录了一堆不同的实现,但是如果你不去搜索,上面会给你你想要什么。
如果您有Office 365或Excel 2019,则可以使用TextJoin函数在没有VBA的情况下完成。
如果您没有这些Excel版本中的任何一个,请使用过去20年中在Web上发布的大量VBA代码之一来连接范围。