在VBA中拆分列

时间:2014-12-03 21:46:54

标签: excel vba

向大家致以问候!

我刚刚在网站上注册以寻找答案;我以前一直在浏览这里的问题,而且我完成了我需要做的所有事情,但有一个例外。

我一直在寻找答案,其中一个部分有效,但问题仍然没有解决。我真的很抱歉,如果之前被问到过(虽然从我的搜索中我怀疑它,或者我可能做错了)。

基本上,我有一个这种格式的表:

Onething.10.20g  || A

Anotherthing.20.15g ||  B

......(它一直在继续,但是很相似。)

我需要做的是仅使用VBA将其转换为以下格式:

Onething   ||  10  ||   20g  ||    A

Anotherthing || 20  ||   15g  ||    B

我设法做的事情基本上是这样的:

Onething.10.20g   ||    10

Anotherthing.20.15g  ||  20

这显然告诉我,这条路线并非完全错误,但也有些不太正确。

我也不能在这里粘贴代码,但稍后我就可以做到。

提前感谢您,对于给您造成的任何不便,我深表歉意!

1 个答案:

答案 0 :(得分:0)

假设你的双管道是' character表示新列,然后尝试以下操作。请注意,它会覆盖原始数据。

Sub test()
Dim arr() As String, constr As String
Dim stCol As Long, stRow As Long, endRow As Long

stCol = 2
stRow = 1
endRow = Cells(Rows.Count, stCol).End(xlUp).Row

    For c = stRow To endRow
        constr = Cells(c, stCol).Value & "." & Cells(c, stCol).Offset(0, 1).Value
        arr() = Split(constr, ".")
        Range(Cells(c, stCol), Cells(c, UBound(arr, 1) + stCol)) = arr
    Next c
End Sub