【发布时间】:2017-11-01 22:10:20
【问题描述】:
我正在将网络上的数据提取到 Excel 电子表格中。所有数据都列在 Sheet1 的 A 列中。例如:
Name: Smith John A.
License: General - Master
License Status: Active
City/State: Anytown, USA
County: Thatoneyouknow
Contact Information
Cell Phone: (555) 555-555
Email Address: johnsmith@johnsmith.com
Region: One
Ever Been Disciplined?: No
Notes: None
然后它会立即为下一个人重复类似的信息,等等。
我已经能够通过使用下面的代码分隔数据的冒号来分割文本:
Sub DataReOrganizer()
Dim s1, s2 As Worksheet
Dim Cook, i, K As Long
Dim v As String
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
Cook = s1.Cells(Rows.Count, "A").End(xlUp).Row
K = 2
For i = 1 To Cook
v = s1.Cells(i, "A").Text
If v = "Contact Information" Then
K = K + 1
Else
ary = Split(v, ": ")
If ary(0) = "Name" Then s2.Cells(K, 1) = ary(1)
If ary(0) = "License" Then s2.Cells(K, 2) = ary(1)
If ary(0) = "License Status" Then s2.Cells(K, 3) = ary(1)
If ary(0) = "City/State" Then s2.Cells(K, 4) = ary(1)
If ary(0) = "County" Then s2.Cells(K, 5) = ary(1)
If ary(0) = "Home Phone" Then s2.Cells(K, 6) = ary(1)
If ary(0) = "Work Phone" Then s2.Cells(K, 7) = ary(1)
If ary(0) = "Cell Phone" Then s2.Cells(K, 8) = ary(1)
If ary(0) = "Email Address" Then s2.Cells(K, 9) = ary(1)
If ary(0) = "Region" Then s2.Cells(K, 10) = ary(1)
If ary(0) = "Ever Been Disciplined?" Then s2.Cells(K, 11) = ary(1)
If ary(0) = "Note" Then s2.Cells(K, 12) = ary(1)
End If
Next I
End Sub
到目前为止,通过获取数据,将值分成不同的列,每个新行作为 sheet2 上列表中的下一个人,到目前为止效果很好。但是,为简化起见,是否可以将此代码转换为也用逗号分隔名称,与许可证字段相同,但用连字符?
提前致谢!
【问题讨论】:
-
在 ary(1) 上再做一次拆分
-
不要为第一个事件拆分,而是使用
Like。前任。If v Like "Name*" then... 然后你就可以从冒号拆分了。