Разделение строки с переменным количеством пробелов VBA - PullRequest
0 голосов
/ 30 января 2010

У меня есть файл с кучей чисел в столбцах. Эти числа разделены переменным количеством пробелов. Я хочу пропустить первую строку и получить все остальные строки и отделить каждый номер в строке. Наконец, я хочу написать каждый номер в Excel. Мне удалось получить строки и написать их в Excel, но я не могу разделить каждое число (я получаю всю строку одной строкой).

Кто-нибудь знает, как разбить строку с переменным числом пробелов?

Вот мой код.

Sub Test()

    r = 0

    With New Scripting.FileSystemObject
        With .OpenTextFile("C:\Users\User\Desktop\File.tab", ForReading)
            If Not .AtEndOfStream Then .SkipLine
            Do Until .AtEndOfStream
                ActiveCell.Offset(r, 0) = Split(.ReadLine, vbCrLf)
                r = r + 1
            Loop
        End With
    End With
End Sub

1 Ответ

3 голосов
/ 31 января 2010

Если вы используете обрезку функции листа Excel вместо функции VBA, то Excel удалит несколько пробелов внутри ячейки (не только с левой и правой стороны). Нечто подобное ниже должно решить проблему. Боюсь, я не проверял его, так как у меня нет удобной копии Excel.


Sub Test()

Dim splitValues As Variant
Dim i As Long

r = 0

With New Scripting.FileSystemObject
    With .OpenTextFile("C:\Users\User\Desktop\File.tab", ForReading)
        If Not .AtEndOfStream Then .SkipLine
        Do Until .AtEndOfStream
            ActiveCell.Offset(r, 0) = Split(.ReadLine, vbCrLf)
        Application.Trim(ActiveCell.Offset(r, 0))
        splitValues = Split(ActiveCell.Offset(r, 0), " ")

        For i = 0 To UBound(x)
            ActiveCell.Offset(r, i+1) = splitValues(i)
        Next
        Loop
    r = r + 1
    End With
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...