【发布时间】:2014-06-16 20:46:30
【问题描述】:
我有多行既是文本又是数字的字符串。我想在除第一部分和最后一部分之外的列中用空格分隔文本。
如果我将文本运行到由空格分隔的列,那么它会拆分我不想拆分的字符串。
例子:
Quarterly Performance Numbers 999,999.99 12.00 1.00 2.00 3.00 4.00 Dec 09, 2013
变成:
Quarterly|Performance|Numbers|999,999.99|12.00|1.00|2.00|3.00|4.00|Dec|09,|2013
我想要什么:
Quarterly Performance Numbers|999,999.99|12.00|1.00|2.00|3.00|4.00|Dec 09, 2013
问题在于该部分的长度和字数不同(从 3 到 6 不等)。
有没有一种方法可以在 VBA 中围绕这两个字符串创建文本限定符?
Sub Macro3()
Dim i As Integer
Dim LastRow As Long
LastRow = ActiveSheet.UsedRange.Rows.Count
For i = 1 To LastRow
Cells(i, 2).Value = Mid(Cells(i, 1), 29, 37)
Cells(i, 3).Value = Right(Cells(i, 1), 12)
Cells(i, 1).Value = Left(Cells(i, 1), 37)
Next i
End Sub
【问题讨论】:
-
这些数据是从哪里来的?你能说服来源将其导出为 CSV 吗?
-
是的,在 VBA 中有一种方法可以做到这一点,如果您向我们展示您的尝试,我们可以帮助您调试它。
-
查尔斯:我试过了。消息来源仅将内容放在 PDF 中,但表示将来可能会切换。暂时我只是把它复制到excel中。
-
Jean:我喜欢你的风格。给我一分钟。
-
格式有多大不同?几乎总是这组数据,只是不同的数字?
标签: vba excel split string-concatenation