excel - 获取一个列列表并分成多个逗号分隔的行

标签 excel vba excel-formula

下面的代码获取 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
我希望结果看起来像下图中的第二组。
enter image description here

最佳答案

如果您在使用 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/

相关文章:

c# - 使用 C# 调用 powerpoint 幻灯片

Excel FILTER 具有排序、不连续列和单步中的 n-top 值

Excel 自动计算崩溃,但手动计算有效

vba - 如何在口袋妖怪游戏中添加怪物?

python - 我应该使用 Python 而不是 VBA 吗?

excel - 地址上方首次使用的单元格

excel - 在 Excel VBA 中执行期间可以调整 For 循环的大小吗?

excel - 四阶和五阶多项式回归在 Excel 中不起作用

excel - 需要有关 Excel 公式的帮助

excel - 自定义 SUMPRODUCT()