下面的代码获取 A 列中的列表,并将整个列转换为单元格 B1 中的逗号分隔列表。相反,我希望能够控制 A 列中的范围并控制结果转到哪个单元格。例如,我想将 A1:A4 放在 B1 中,然后将 A5:A8 放在 B2 中。任何人都知道如何编码。谢谢
Sub test()
Range("B1") = Join(Application.Transpose(Range("A1", Range("A" & Rows.Count).End(xlUp)).Value), ",")
End Sub
我希望结果看起来像下图中的第二组。最佳答案
如果您在使用 TextJoin
时遇到问题并且它肯定无法正常工作(我会努力让它工作而不是解决它),那么这对您有用,这是同一种概念。
Public Function MyTextJoin(ByVal strDelimiter As String, ByVal bIgnoreGaps As Boolean, ByVal rngValues As Range) As String
Dim objCell As Range, strValue As String, bAddValue As Boolean
For Each objCell In rngValues
bAddValue = False
strValue = objCell.Text
If strValue <> "" Then
bAddValue = True
Else
If Not bIgnoreGaps Then bAddValue = True
End If
If bAddValue Then MyTextJoin = MyTextJoin & strDelimiter & strValue
Next
If Left(MyTextJoin, 1) = "," Then MyTextJoin = Mid(MyTextJoin, 2)
End Function
仅供引用 - TextJoin
仅在更高版本的 Excel 中可用,所以如果公式根本不存在,那就是原因。https://support.microsoft.com/en-us/office/textjoin-function-357b449a-ec91-49d0-80c3-0e8fc845691c
关于excel - 获取一个列列表并分成多个逗号分隔的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70586745/