【发布时间】:2016-11-10 20:17:34
【问题描述】:
我有这样的输入数据:
gen,N,,,GONGD,,,N,,,KL,0007bd,,,,,,,,TAK,
gen,N,,,RATEC,,,N,,,KP,0007bc,,,,,,,,TAZ,
kap,N,,,EBFWE,N,,,,,,,,,KP,002bd4,,,KP,123000,,,,,N,,,,P
kap,N,,,ST,WEIT,E3,EBFWEI,,,KP,002bd2,N,,,,,,KP,002bd3,,,,,,,Z,MG00,,,,,N,,,,P
一行是一列。首先我需要知道我以“kap”开头,然后我需要在第一个“,KP”之后将6个字符(或数字)保存为“Variable1”,并在第二个之后保存6个字符或数字“ ,KP”作为“变量 2”。请帮帮我,我没救了。
预期结果:第一个“kap”行的 Var1 = 002bd4,Var2 = 123000。 Var3 = 002bd2, Var4 = 002bd3
我试过这个知道我在“kap”起跑线上:
Sub Find()
Dim rFoundAddress As Range
Dim sFirstAddress As String
Dim x As Long
With ThisWorkbook.Worksheets("Sheet1").Columns(1)
Set rFoundAddress = .Find("kap,*", LookIn:=xlValues, LookAt:=xlWhole)
If Not rFoundAddress Is Nothing Then
sFirstAddress = rFoundAddress.Address
Do
Set rFoundAddress = .FindNext(rFoundAddress)
Loop While Not rFoundAddress Is Nothing And _
rFoundAddress.Address <> sFirstAddress
End If
End With
End Sub
谢谢!
【问题讨论】:
-
您搜索的“msz,*”与“kap”和“KP”有什么关系?
-
看
Split或者更好的方式,正则表达式,先用逗号分割找到第一个元素,然后用“KP”分割可能是数字作为第一个元素 -
@user3598756 我的错,我已经编辑过了。谢谢。
-
形成我期望的叙述:Var1 = 002bd4, Var2 = 002bd5 用于第一个“kap”行,而不是 Var1 = 002bd4, Var2 = 123000 。其实怎么样?
-
@user3598756 很抱歉我又犯了错误。现在应该是正确的。第一行 - Var1,Var2,第二行 - Var3,Var4 等。当然,每行总是只有 2 个 KP,而较低的 Var 数字意味着从左边开始的第一个 KP。再次抱歉。