Разделить столбец VBA определенной длины?

У меня есть вопрос, который почти точно такой же, как эта ссылка на тему ниже:

Разделить столбец Excel VBA определенной длины на несколько строк

Однако что, если я хочу найти последний разделитель перед разделением?

пример: требование длины меньше 10.

моя строка: 11, 3344, 5566 результат будет: 1 ряд: 11,3344, Ряд 2: 5566

в основном мне не нужно быть ровно 10 символов (должно быть не более 10 символов), но мне нужно учитывать последний разделитель, прежде чем он достигнет 10 символов. Пожалуйста, помогите, пожалуйста

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
0
265
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Передайте Left$(myString, 10) в разделитель. Тогда вы смотрите только на первые 10 символов и выполняете разделение.

Ответ принят как подходящий

Начните с 1000 символов и прокрутите текст назад, чтобы проверить, равен ли текущий символ разделителю, который вы хотите, если не продолжите цикл назад. Если он равен разделителю, остановите цикл и получите позицию.

Sub tester():
    ''Application.SendKeys "^g ^a {DEL}"
    Dim last_ctr As Variant
    Dim current_char As Variant
    Dim final_char As Variant
    Dim limit As Variant
    Dim my_delimiter as Variant

    '' your limit on the text
    limit = 1000
    my_delimiter = ","

    test = ActiveSheet.Range("A1")
    '' loop backwards from the string
    For x = limit To 0 Step -1
        '' check the current char if it is equal to what you want
        current_char = Mid(test, x, 1)
        If current_char = my_delimiter Then
            '' get the current position of the loop
            final_char = x
            Exit For
        End If
    Next x
    End Sub

После получения позиции (final_char) используйте на ней команду Left

Left(test, final_char)

Другие вопросы по теме