2016-08-17 27 views
0

我想使用VBA将单元格的内容拆分为三个单独的部分,例如[city],[state] [zip code]放在同一行的三个不同列中,同时保留原始单元格不变。如何在Visual Basic中使用多个分隔符分隔单元格?

我曾经认为拆分是可行的,但不幸的是,我遇到了一些复杂的问题,第一次拆分似乎只留下了剩下的部分,剩下的部分,第二,我不明白我可以如何合并两个分隔符合成一个分隔符。

任何想法如何克服这些问题?

Cells(Row1, ColA).Select 
    Location = ActiveCell.Value 

    Cells(Row1, ColC) = Split(Location, ",") 


    Cells(Row1, ColA).Select 
    Cells(Row1, ColD) = Split(Location, " ") 

    Cells(Row1, ColA).Select 
    Cells(Row1, ColE) = Split(Location, " ") 
+0

尝试下面的第th个代码,看看它是否适用于您 –

+0

您是否尝试过在这里得到的答案中的代码? –

回答

0

Split()返回字符串数组,则需要通过此阵列来迭代,并分配各元素为相应的单元格的值(看一看this answer)。

而且,你不需要选择单元格赋值给它,你可以使用:

Cells(Row,Column).Value = X

关于2个分隔符,你可以做到这一点的描述here

0

使用拆分,我使用数组中间只存储分割字符串(如果你将要在以后使用它),这也为我节省了迭代的时间。

Sub Split_toThree() 

Dim lrow    As Long 
Dim LastRow    As Long 
Dim SplitArr()   As String 

' find last row in Column A (where you keep your full string) 
LastRow = Cells(Rows.Count, "A").End(xlUp).Row 

For lrow = 2 To LastRow 
    SplitArr() = Split(Cells(lrow, "a"), ",") 
    Range("C" & lrow & ":E" & lrow) = SplitArr() 
Next lrow 

End Sub 
相关问题