Vraag : VBA die een lijn met een een kommaseperator en citaat qualifer verdeelt

Schuin hallo af,/>im het spelen

Function SplitAdv (strInput)
'< een href= " http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_21935286.html " > http://www.experts-exchan ge.com/Pro gramming/Languages/Visual_Basic/Q_21935286.html
Dim objRE
Set objRE = CreateObject („VBScript.RegExp“)
objRE.IgnoreCase = True
objRE.Global = True
objRE.Pattern =“ gebruik, (? = ([^“] * ' [^ '] * ') * (?! [^ ' ] * '))„„gebruikt een“ qualifer
SplitAdv = verdelen (objRE.Replace (strInput, „\ B“),“ \ B ")
End Function

Sub testingsplit ()
Dim het meest arrTest TestString, x

TestString = „123, „Rekening“, „schommelt“, „wat, o.k. u juiste““ 'gebruiker zijn één enkel citaat qualifer
'this moet werken:
'TestString = „123, „Rekening“, „schommelt“, „wat, o.k. u de 'gebruiker juiste "" één enkel citaat qualifer

arrTest = SplitAdv (TestString)

For x = 0 aan UBound (meest arrTest)
MsgBox meest arrTest (x)
Next
End Sub


obviously is ik eenvoudig kon doen vervang (TestString, """",“ ' ")
however ik eerder de functie indien mogelijk zou bijwerken?

nb. dit is uitblinkt binnen vba
van 2003

Antwoord : VBA die een lijn met een een kommaseperator en citaat qualifer verdeelt

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
Functie SplitAdv (strInput)
'http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_21935286.html
Schemerige objRE
Reeks objRE = CreateObject („VBScript.RegExp“)
objRE.IgnoreCase = Waar
objRE.Global = Waar
objRE.Pattern = „, (? = ([^ ""] * "" [^ ""] * "") * (?! [^ ""] * ""))“ 'gebruikt een „qualifer
SplitAdv = verdeelde (objRE.Replace (strInput, „\ B“),“ \ B ")
De Functie van het eind

Sub testingsplit ()
Schemerige het meest arrTest TestString, x

'TestString = „123, „Rekening“, „schommelt“, „wat, o.k. u juiste““ 'gebruiker één enkel citaat qualifer zijn
'dit moet werken:
TestString = „123, "" Rekening "", "" schommelt "", "" wat, o.k. u 'gebruiker juiste """ een dubbel citaat qualifer zijn

het meest arrTest = SplitAdv (TestString)

Voor x = 0 aan (het meest arrTest) UBound
   Het meest arrTest MsgBox (x)
Daarna
Sub van het eind
Andere oplossingen  
 
programming4us programming4us