Excel VBA - 如何在列中的每个单词后插入逗号

时间:2015-06-26 15:06:44

标签: excel vba excel-vba

我有一个包含多个单词字符串的列。像这样:

+---+-------------------------------+--------------+-------------------------------+--------------+-------------------------------+-------------------------------+
|   |               A               |       B      |               C               |       D      |               E               |               F               |
+---+-------------------------------+--------------+-------------------------------+--------------+-------------------------------+-------------------------------+
| 1 | Early Summer Lawn Application | Service Call | Early Summer Lawn Application | Grub Control | Early Summer Lawn Application | Early Summer Lawn Application |
+---+-------------------------------+--------------+-------------------------------+--------------+-------------------------------+-------------------------------+

我的问题是如何在列中的每个单词后插入逗号,最后得到:

+---+-------------------------------+--------------+-------------------------------+--------------+-------------------------------+-------------------------------+
|   |               A               |       B      |               C               |       D      |               E               |               F               |
+---+-------------------------------+--------------+-------------------------------+--------------+-------------------------------+-------------------------------+
| 1 | Early,Summer,Lawn,Application | Service,Call | Early,Summer,Lawn,Application | Grub,Control | Early,Summer,Lawn,Application | Early Summer Lawn Application |
+---+-------------------------------+--------------+-------------------------------+--------------+-------------------------------+-------------------------------+

如果结果在不同的列中,它可以丢失单词之间的空格和ok,我只是不知道如何插入逗号。

2 个答案:

答案 0 :(得分:3)

在这里赢得简单的替换工作?

 =replace(A1," ", ",")

用逗号替换空格。另一个功能是

=substitute(A1, " ", ",")

也有效,但替代品有另一个可能派上用场的论据。它指定要替换的事件。例如,如果您只想用逗号替换第一个空格,但保留其他空格,请尝试以下操作:

=substitute(A1, " ", ",", 1)

底线,如果您知道要替换的位置(位置),请使用替换,如果您知道要替换的内容(内容),请使用替换。你发现,要么是为了一小类问题而努力。

答案 1 :(得分:0)

以下示例以编程方式将所有空格替换为逗号:

Sub example()
Dim s1 As String, s2 As String
Dim pos As Integer
    s1 = ActiveSheet.ActiveCell.Value
    s2 = ""
    pos = InStr(1, s1, " ")
    While (pos <> 0)
        s2 = s2 & Mid(s1, 1, pos - 1) & ","
        s1 = Mid(s1, pos + 1)
        pos = InStr(1, s1, " ")
    Wend
    s2 = s2 & s1
    ActiveSheet.ActiveCell.Value = s2
End Sub