更新时间:2023-11-07 10:57:46
我不认为我会这样做,但是如果你的语法正确并消除了拼写错误就应该有效
Sub Search3()
$
Dim MatchString As String
Dim MatchString2 As String
Dim counter As Long,i As Long
Dim openPos As Long
Dim closePos As Long
Dim midbit As String
Dim Name As String
Dim DataIn As String
Dim vData As Variant
MatchString =" DLBL"
MatchString2 =" DLBL "
$
对于counter = 1 To Range("A"& Rows.Count).End(-4162).Row
DataIn =范围("A"和&柜台).Value
如果InStr(1,DataIn,MatchString)> 0或InStr(1,DataIn,MatchString2)> 0然后
vData =拆分(DataIn,vbLf)
对于i = 0到UBound(vData)
如果vData(i)喜欢"* DLBL *",然后是
openPos = InStr函数(1,VDATA(i)中,"'")
            &NBSP ;       closePos = InStr函数(openPos + 1,VDATA(i)中,"'")
           &NBSP ;        midbit =中(VDATA(i)中,openPos + 1,closePos - openPos - 1)
           &NBSP ;       范围(" B"&安培;计数器)。价值= midbit
                结束如果
下一个
midbit =""
结束如果是
下一个柜台
结束子
COLUMN A DLBL GPFGBSM,'PHGP.GPFGBSM.GBS.KSDS',,VSAM,CAT=PCAT2 DLBL GPFGGIM,'PHGP.GPFGGIM.GGI.KSDS',,VSAM,CAT=PCAT2 36 DLBL GPFEXT1,'PHGP.GPFPWO4.PWO.ESDS',,VSAM,CAT=PCAT3 DLBL FILE01,'PHGP.GPFPWO4.PWO.ESDS',,VSAM,CAT=PCAT3 DLBL FILE1,'PHGP.GPFPWO4.PWO.ESDS',,VSAM,DISP=(NEW,DELETE)
I have a spreadsheet which contains many file names inside each single cell under column A
(as shown here,there are other file names as well).Now I must write only the part between ' '.
for example : I want to replace each cells with only the file name i.e. PHGP.GPFGBSM.GBS.KSDS.
Is that possible?
So far I have tried this:
Sub Search3()
Dim MatchString As String
Dim matchstrin2 As String
Dim counter As Variant
Dim Name As String
Dim Datain As String
MatchString = "DLBL"
MatchString2 = "DLBL "
For counter = 1 To Range("A:A").Count
Datain = Range("A" & counter).Value
If (InStr(1, Datain, MatchString) > 0 Or InStr(1, Datain, MatchString2) > 0) Then
Data = Split(Datain, vbLf)
cnt = UBound(Data)
For I = 0 To cnt
If Data(I) Like "*DLBL*" Then
openPos = InStr(Data, "")
closePos = InStr(Data, "'")
midbit = Mid(Data, openPos + 1, closePos - openPos - 1)
Range("B" & counter).Value = midbit
'Next
End If
Next
midbit = ""
End If
Next counter
End SubIts giving me type mismatch error.Please help
I don't think I would have done it that way, but if you get the syntax right and eliminate the typos it should work
Sub Search3()
Dim MatchString As String
Dim MatchString2 As String
Dim counter As Long, i As Long
Dim openPos As Long
Dim closePos As Long
Dim midbit As String
Dim Name As String
Dim DataIn As String
Dim vData As Variant
MatchString = "DLBL"
MatchString2 = "DLBL "
For counter = 1 To Range("A" & Rows.Count).End(-4162).Row
DataIn = Range("A" & counter).Value
If InStr(1, DataIn, MatchString) > 0 Or InStr(1, DataIn, MatchString2) > 0 Then
vData = Split(DataIn, vbLf)
For i = 0 To UBound(vData)
If vData(i) Like "*DLBL*" Then
openPos = InStr(1, vData(i), "'")
closePos = InStr(openPos + 1, vData(i), "'")
midbit = Mid(vData(i), openPos + 1, closePos - openPos - 1)
Range("B" & counter).Value = midbit
End If
Next
midbit = ""
End If
Next counter
End Sub