Я хотел бы проанализировать столбец ячеек строк в Excel VBA, каждая ячейка содержит следующее:
2 '␂'
Я хотел бы изменить содержимое этой ячейки, чтобы оно содержало только 2 (или любые числовые символы непосредственно перед "строкой". Какой самый простой способ анализа такой информации? Спасибо.
Ответ 1 · рейтинг 2 · shahkalpeshp
Если вы уверены в формате, найдите строку перед ' (апострофом) и измените значение ячейки. Предполагая, что вы находитесь в ячейке с этим значением, используйте следующий код VBA.
activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)
Он ищет апостроф и извлекает символы перед ним и помещает его в текущую ячейку.
Ответ 2 · aevanko
Предполагая, что числовые данные всегда находятся в начале ячейки, вы можете использовать Regex для поиска любых последовательных чисел в начале строки, останавливаясь, как только он достигает первых нечисловых символов. Вот функция, которая сделает это за вас, надеюсь, она поможет. ^ обозначает начало ячейки, а (\d+) означает один или несколько числовых символов, а .* означает, что за ними следует ноль или более символов. Я предполагаю, что вам нужна только одна строка чисел, поэтому регулярное выражение просто возвращает подсовпадение 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