Вычисление начального и конечного индекса из столбца текста в VBA - PullRequest
1 голос
/ 28 марта 2019

Я делаю код, который будет извлекать начальный и конечный индексы текста в VBA.Это условие применительно к ячейке должно соответственно измениться

Это код для подсчета длины слов, но он застрял в индексной части, вывод моей функции StartIndex всегда равен 0. Я хочу сделать еще один EndIndexфункция

Public Function CountWords(ByVal strText As String) As Long
    Application.Volatile
    CountWords = UBound(Split(strText, " ")) + 1
End Function

Length = 1
StartIndex = 0

Public Function StartIndex(ByVal strText As String) As Long
    Application.Volatile
    StartIndex = Length + StartIndex
    Length = UBound(Split(strText, " ")) + 1
End Function

рассмотрим пример, у меня есть col 1 и я хочу сгенерировать startIndex и endIndex

          Col1                          startIndex               endIndex
VBA Index Printer Friendly version         1                        5
 Adobe Acrobat version                     6                        8
A UDF can remain in a code module          9                       15

1 Ответ

1 голос
/ 28 марта 2019

Вы можете достичь этого результата, используя простую настройку, как показано ниже.Предполагая, что данные начинаются с ячейки A3.

В ячейку B3 введите жестко закодированное значение: 1

В ячейку B4 вставьте формулу: =C3+1

В ячейку C3 вставьтеформула: =B3+(LEN($A3)-LEN(SUBSTITUTE($A3," ","")))

Скопируйте формулы в ячейках B4 и C3 до последней строки ваших данных в столбце A.

...