Синтаксический анализ столбца строк с помощью VBA
Вопрос
Я хотел бы проанализировать столбец строк ячейки в Excel VBA, каждая из ячеек содержит следующее:
2 '␂'
Я хотел бы изменить содержимое этой ячейки так, чтобы оно содержало только 2 (или любые цифровые символы непосредственно перед 'string'.Какой был бы самый простой метод анализа такой информации?Спасибо.
Решение
Если вы уверены в формате, найдите строку перед ' (апострофом) и измените значение ячейки.Предполагая, что вы находитесь в ячейке, имеющей это значение, используйте следующий код VBA.
activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)
Он ищет апостроф и извлекает символы перед ним и помещает их в текущую ячейку.
Другие советы
Предполагая, что числовые данные всегда находятся в начале ячейки, вы можете использовать регулярное выражение для поиска любых последовательных чисел в начале строки, останавливаясь, как только оно достигает первых нечисловых символов.Вот функция, которая сделает это за вас, я надеюсь, это поможет.Символ ^ обозначает начало ячейки, а (\d +) означает один или несколько цифровых символов, а .* означает, что за ним следует ноль или более символов.Я предполагаю, что вам нужна только одна строка чисел, поэтому у меня есть регулярное выражение, которое просто возвращает submatch 0 (первое совпадение).
Function ExtractNumericData(ByVal text As String) As String
Application.ScreenUpdating = False
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.Pattern = "^(\d+).*"
RE.Global = True
Set allMatches = RE.Execute(text)
ExtractNumericData = allMatches.Item(0).submatches.Item(0)
Application.ScreenUpdating = True
End Function