Синтаксический анализ столбца строк с помощью VBA

StackOverflow https://stackoverflow.com/questions/928244

  •  06-09-2019
  •  | 
  •  

Вопрос

Я хотел бы проанализировать столбец строк ячейки в 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top