Большое спасибо mwolfem. Мне жаль говорить, что я еще не тестировал ваш код, но в моем случае я хочу выбрать определенные значения из моей строки, не печатая всю строку, однако после небольшого дополнительного исследования у меня есть Рабочее решение для всех, кто борется с этой проблемой, заключается в следующем:
Создайте эту первую функцию в модуле:
Public Function DelimConvertor(varInput As Variant, strDelim As String, strQualifier As String) As Variant
Const strStart = "Ã" 'Ascii 195, or any other Ascii you are unlikely to encounter
Const strEnd = "ž" 'Ascii 158, or any other Ascii you are unlikely to encounter
Const strNewDelim = "§" 'Ascii 167, or any other Ascii you are unlikely to encounter
Dim lngi As Long
Dim strChar As String
Dim flgStart As Boolean
Dim varOutput As Variant
'Format the string so we can distinguish the fields
If Left(varInput, 1) = strQualifier Then
varInput = strStart & Right(varInput, Len(varInput) - 1)
End If
If Right(varInput, 1) = strQualifier Then
varInput = Left(varInput, Len(varInput) - 1) & strEnd
End If
varInput = Replace(varInput, strDelim & strQualifier, strDelim & strStart)
varInput = Replace(varInput, strQualifier & strDelim, strEnd & strDelim)
'Loop through and format the rest of the string
For lngi = 1 To Len(varInput)
strChar = Mid(varInput, lngi, 1)
Select Case strChar
Case strStart
flgStart = True
Case strEnd
flgStart = False
Case Else
If flgStart Then
varOutput = varOutput & strChar
ElseIf strChar = strDelim Then
varOutput = varOutput & strNewDelim
Else
varOutput = varOutput & strChar
End If
End Select
Next
'Return the cleansed stream that can now be used with the Split function
DelimConvertor = varOutput
End Function
И затем вы используете его во время импорта файла с чем-то вроде следующего:
Public Function Test()
Dim fso As New FileSystemObject
Dim ts As TextStream
Dim strArray() As String
Set ts = fso.OpenTextFile("C:\Users\Admin\Desktop\test.txt", ForReading)
strArray = Split(DelimConvertor(ts.ReadLine, ",", """"), "§")
'Obtain your desired field here e.g. strArray(0)
ts.Close
End Function