如何将文本拆分到不同的列或从原始列中删除文本?
How do i split text to a different column or remove a text from the original column?
我复制了一列从D9开始的数据到D-whatever,复制的数据既有十进制值又有文本。 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/s。
我知道这对大多数人来说很简单,但我在这方面相对较新,所以任何帮助都会很好。谢谢你。非常感谢你。
所以测试一下:
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 工具:
In Data tab, Convert tool :
- Choose Delimited
- Chose space as Separator
尽情享受
那里不需要VBA,如果你想看一看split function there
如果转到功能区上的“数据”选项卡,您将看到“文本分栏”工具。
Select 您要拆分的数据,然后单击“文本分栏”。
在第 1 步中,select 分隔选项并单击下一步。
在第 2 步中,select 只是 Space 分隔符,然后单击下一步。
在第 3 步中,您将看到数据拆分方式的预览,并且可以选择 select 列而不导入它。
了解 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
如前所述,Split
是执行此操作的简单方法。如果您知道您将始终拥有一个 space,您可以使用
非常快速地获取所有单元格
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
)值列并在[=25上应用<code>Split
来工作=].然后它获取这两个值并使用 Resize
将输出扩展一列将它们弹出到单元格顶部。
Split
returns 一个数组,以便它可以快速输出回电子表格。
我复制了一列从D9开始的数据到D-whatever,复制的数据既有十进制值又有文本。 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/s。
我知道这对大多数人来说很简单,但我在这方面相对较新,所以任何帮助都会很好。谢谢你。非常感谢你。
所以测试一下:
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 工具:
In Data tab, Convert tool :
- Choose Delimited
- Chose space as Separator
尽情享受
那里不需要VBA,如果你想看一看split function there
如果转到功能区上的“数据”选项卡,您将看到“文本分栏”工具。
Select 您要拆分的数据,然后单击“文本分栏”。
在第 1 步中,select 分隔选项并单击下一步。
在第 2 步中,select 只是 Space 分隔符,然后单击下一步。
在第 3 步中,您将看到数据拆分方式的预览,并且可以选择 select 列而不导入它。
了解 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
如前所述,Split
是执行此操作的简单方法。如果您知道您将始终拥有一个 space,您可以使用
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
)值列并在[=25上应用<code>Split
来工作=].然后它获取这两个值并使用 Resize
将输出扩展一列将它们弹出到单元格顶部。
Split
returns 一个数组,以便它可以快速输出回电子表格。