Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Разбор столбца строк с помощью VBA

Автор вопроса: stanigatorОтветов: 2

Я хотел бы проанализировать столбец ячеек строк в Excel VBA, каждая ячейка содержит следующее:

2 '␂'

Я хотел бы изменить содержимое этой ячейки, чтобы оно содержало только 2 (или любые числовые символы непосредственно перед "строкой". Какой самый простой способ анализа такой информации? Спасибо.

  • Дубликат stackoverflow.com/questions/924717/ ?? barrowc 30.05.2009
  • Это отдельный вопрос, вытекающий из вопроса, который я задавал ранее в ветке barrowc. stanigator 30.05.2009

excelvba

Ответы

Ответ 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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы