У меня есть вопрос, который почти точно такой же, как эта ссылка на тему ниже:
Разделить столбец Excel VBA определенной длины на несколько строк
Однако что, если я хочу найти последний разделитель перед разделением?
пример: требование длины меньше 10.
моя строка: 11, 3344, 5566 результат будет: 1 ряд: 11,3344, Ряд 2: 5566
в основном мне не нужно быть ровно 10 символов (должно быть не более 10 символов), но мне нужно учитывать последний разделитель, прежде чем он достигнет 10 символов. Пожалуйста, помогите, пожалуйста
Передайте 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)