EXCEL:使用宏 VBA 将多个单元格字符串合并为一个单元格

问题描述 投票:0回答:1

我想在Excel中合并多个垂直单元格,假设从A1:A9开始,如下所示:

FROM:

    {'BAKWLC001': '10.144.250.240'}
    {'BEWLC002': '10.250.32.249'}
    {'CTALRwlc01': '10.52.188.100'}
    {'CTARXwlc01': '10.20.40.100'}
    {'CTB1wlc01': '10.65.224.20'}
    {'CTBCwlc01': '10.65.194.10'}
    {'CTBGKwlc01': '10.61.248.100'}
    {'CTBIRwlc01': '10.51.200.100'}
    {'CTC0wlc01-new': '10.61.205.100'}

进入单元格 A10,如下所示。其中包括用左/右括号将所有内容括起来,并用逗号和空格分隔每个项目。此外,上面显示的最后一个项目应该动态地具有右括号(假设不只是上面所示的 9 个项目。假设它有 10、20、500 个项目等。最后一个项目将具有右括号)。

TO:

    [{'BAKWLC001': '10.144.250.240'}, {'BEWLC002': '10.250.32.249'}, {'CTALRwlc01': '10.52.188.100'}, {'CTARXwlc01': '10.20.40.100'}, {'CTB1wlc01': '10.65.224.20'}, {'CTBCwlc01': '10.65.194.10'}, {'CTBGKwlc01': '10.61.248.100'}, {'CTBIRwlc01': '10.51.200.100'}, {'CTC0wlc01-new': '10.61.205.100'}]

我尝试过使用这个VBA代码:

    Range("A10") = Join(Application.Transpose(Range("A1:A9")), vbLf)

但它只组合所有单元格,但没有括号、逗号,特别是在组合单元格末尾的任何项目上有括号的灵活性。

excel vba macros excel-2010
1个回答
0
投票

尝试使用

,
逗号代替换行
vbLf
。并在连接后在字符串的开头和结尾添加方括号。

Sub JoinText()
    Range("A10") = "[" & Join(Application.Transpose(Range("A1:A9")), ",") & "]"
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.