我已经复制了从D9到D的数据列,无论如何,复制的数据都包含十进制值和文本。数据列D中的每个单元格都有所不同
D9:1675.87 L / s D10:1555.87 L / s D11:1635.87 L / s 这是我试过的代码..
Dim c As Collection, K As Long
Set c = New Collection
K = 9
On Error Resume Next
For Each r In Range("D9:D" & Cells(Rows.Count, "D").End(xlUp).Row)
ary = Split(r.Text, ",")
For Each a In ary
c.Add a, CStr(a)
If Err.Number = 0 Then
Cells(K, "E").Value = a
K = K + 1
Else
Err.Number = 0
End If
Next a
Next r
On Error GoTo 0
我想分割数据,使其为D6 1675.87和E6 L / s或完全删除L /。
我知道这对大多数人来说很简单,但我在这方面比较新,所以任何帮助都会很好。谢谢。非常感谢。
答案 0 :(得分:2)
所以测试一下:
Sub SplitValues()
Dim aSplit As Variant
With ActiveSheet
For I = 2 To Cells(.Rows.Count, "D").End(xlUp).Row
aSplit = Split(Cells(I, "D"), " ", 2)
'Write in D and E columns (erase data already in D)
Cells(I, "D") = aSplit(0)
Cells(I, "E") = aSplit(1)
'Write in E and F columns (don't erase data already in D)
'Cells(I, "E") = ArrSplit(0)
'Cells(I, "F") = ArrSplit(1)
Next I
End With
End Sub
您可以使用内置的Excel工具:
在数据标签中,转换工具:
- 选择分隔
- 选择空格作为分隔符
醇>
并享受
如果你想看一下split function there
,那就不需要VBA了答案 1 :(得分:1)
如果您转到功能区上的“数据”选项卡,您将看到“文本到列”工具。
选择要拆分的数据,然后单击“文本到列”。
在步骤1中,选择“分隔”选项,然后单击“下一步”。
在第2步中,仅选择Space delimiter,然后单击Next。
在第3步中,您将看到如何拆分数据的预览,并可选择选择列而不导入它。
答案 2 :(得分:1)
了解Split
功能 - > https://msdn.microsoft.com/en-us/library/6x627e5f%28v=vs.90%29.aspx
Sub LittleExample()
Dim ArrSplit As Variant
Cells(6, "D") = "1675.87 L/s"
ArrSplit = Split(Cells(6, "D"), " ")
Cells(6, "D") = ArrSplit(0) ' 1675.87
Cells(6, "E") = ArrSplit(1) ' L/s
End Sub
答案 3 :(得分:1)
如上所述,Split
是执行此操作的简便方法。如果您知道您将始终拥有一个空格,则可以使用
Sub SplitAndRewrite()
Dim rng_start As Range
Set rng_start = Range("D6")
Dim rng_cell As Range
For Each rng_cell In Range(rng_start, rng_start.End(xlDown))
rng_cell.Resize(, 2) = Split(rng_cell, " ")
Next
End Sub
代码通过迭代连续(使用End
)值列并在Split
上应用来工作。然后使用
Resize
获取两个值并将它们弹回到单元格的顶部,以将输出扩展一列。
Split
返回一个数组,以便可以快速输出回电子表格。