Top-office11.ru

IT и мир ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel vba replace примеры

Заменить содержимое ячеек с помощью Find / Replace

09.07.2014, 13:42

Переменный счетчик в Find.replace
Друзья,подскажите, пожалуйста, возможно ли сделать счетчик внутри перебора всех найденных Find’ом.

Програмное управление поиском/заменой (Cells.Find/Replace)
Други, доброго времени суток, Вопрос кратко: где находиться параметр, указывающий поиску.

Нумерация строк в TB для Find/Replace по всему документу Word
Здравствуйте! У меня возник вопрос как лучше сделать, нумерацию строк в textbox’ах, в небольшом.

Как выполнить функцию или метод replace для диапазона ячеек
Вроде так работает Cells(1, 2).Value = Replace(Cells(1, 2).Value, «яяяяя», «») но тогда придётся.

09.07.2014, 13:49 [ТС]2
Visual Basic
09.07.2014, 14:023

ну допустим реплейсом вы имя файла замените, а есть гарантия что файл существует ?

Добавлено через 10 минут
и не find нужен а replace

09.07.2014, 14:09 [ТС]4

гарантия есть!
хм. значит просто реплейсом с условием if ?

Добавлено через 4 минуты
переделал на:

Visual Basic
09.07.2014, 14:175

Код вообще никакой. Ни по логике, ни по синтаксису.
Думаю нужно пройтись циклом по данным и сгенерить фио.pdf — если есть (*) то добавляем то, что между скобок, елси нет то не добавляем.
Вопрос как выдергивать что между скобок (найти скобки можно или с помощью like, или instr()).
А вообще всё можно сделать формулами. И использовать написанную формулу в коде сразу по всему диапазону.
Но я не формулист, не возьмусь

Добавлено через 6 минут
Второй код чуть лучше, но.

Visual Basic
09.07.2014, 14:20 [ТС]6
09.07.2014, 14:247
09.07.2014, 15:02 [ТС]8

придумал как можно обойти всякие скобки. ставим фильтр, потом делаем если есть в ячейке (1), то ставим в колонке «С» 1, а если (2), то 2

Добавлено через 11 минут
кстати насчёт реплэйса. как прописать правильно диапазон ячеек?
т.е.

Visual Basic
09.07.2014, 15:099

Решение

Visual Basic
09.07.2014, 15:44 [ТС]10
Visual Basic
09.07.2014, 15:5611
Visual Basic
09.07.2014, 16:0312
Visual Basic
10.07.2014, 10:36 [ТС]13

завтра всё протестирую.

Добавлено через 1 час 37 минут
протестировал вариант Surrogate — офигенно. то что нужно.
протестировал вариант Step_UA — офигенно. теперь буду знать о такой функции.
всем спасибо.

Добавлено через 16 часов 49 минут
Вопрос на засыпку: как прописать в макросе отнимание левых символов, а не правых?

30 функций Excel за 30 дней: ЗАМЕНИТЬ (REPLACE)

Вчера в марафоне 30 функций Excel за 30 дней мы использовали функцию INDEX (ИНДЕКС), чтобы вернуть значение ячейки, расположенной на пересечении заданных строки и столбца.

25-й день марафона мы посвятим изучению функции REPLACE (ЗАМЕНИТЬ), которая относится к категории текстовых. Она заменяет определённое количество символов текстовой строки другим текстом.

Итак, давайте внимательно посмотрим информацию и примеры по функции REPLACE (ЗАМЕНИТЬ), а если у Вас есть дополнительные сведения или примеры, прошу делиться ими в комментариях.

Функция 25: REPLACE (ЗАМЕНИТЬ)

Функция REPLACE (ЗАМЕНИТЬ) заменяет символы внутри текста, основываясь на заданном количестве символов и начальной позиции.

Как можно использовать функцию REPLACE (ЗАМЕНИТЬ)?

Функция REPLACE (ЗАМЕНИТЬ) может заменять символы в текстовой строке, например:

  • Изменить код города в телефонном номере.
  • Заменить пробел на двоеточие с пробелом.
  • Использовать вложенную функцию REPLACE (ЗАМЕНИТЬ) для вставки нескольких дефисов.

Синтаксис REPLACE (ЗАМЕНИТЬ)

Функция REPLACE (ЗАМЕНИТЬ) имеет вот такой синтаксис:

REPLACE(old_text,start_num,num_chars,new_text)
ЗАМЕНИТЬ(старый_текст;нач_поз;число_знаков;новый_текст)

  • old_text (старый_текст) – текстовая строка, в которой будут заменены символы.
  • start_num (нач_поз) – начальная позиция старых символов.
  • num_chars (число_знаков) – количество старых символов.
  • new_text (новый_текст) – текст, который будет вставлен вместо старых символов.

Ловушки REPLACE (ЗАМЕНИТЬ)

Функция REPLACE (ЗАМЕНИТЬ) заменяет определённое количество символов, начиная с указанной позиции. Чтобы заменить определённую строку текста в любом месте текста оригинала, Вы можете использовать функцию SUBSTITUTE (ПОДСТАВИТЬ), которую мы рассмотрим позже в рамках нашего марафона.

Пример 1: Меняем код города в телефонном номере

При помощи функции REPLACE (ЗАМЕНИТЬ) Вы можете изменить первые три цифры в телефонном номере, например, когда задан новый код города. В нашем случае новый код города введён в столбце C, а откорректированные телефонные номера отображаются в столбце D.

Пример 2: Заменяем пробел на двоеточие с пробелом

Чтобы определить начальную позицию для функции REPLACE (ЗАМЕНИТЬ), Вы можете использовать функцию FIND (НАЙТИ), чтобы обнаружить определённую строку текста или символ. В этом примере мы хотим заменить первый пробел, встречающийся в текстовой строке, на двоеточие с пробелом.

=REPLACE(B3,FIND(» «,B3,1),1,»: «)
=ЗАМЕНИТЬ(B3;НАЙТИ(» «;B3;1);1;»: «)

Пример 3: Вложенные функции REPLACE (ЗАМЕНИТЬ) для вставки нескольких дефисов

Функцию REPLACE (ЗАМЕНИТЬ) разрешается вкладывать одну в другую, таким образом в исходном тексте можно делать множественные замены. В этом примере телефонные номера должны содержать дефисы после первой тройки символов и после второй. Используя ноль, как количество символов для замены, мы получим такой результат, что ни один из символов телефонного номера не будет удалён, лишь добавятся 2 дефиса.

Excel vba replace примеры

Информация о сайте

Инструменты и настройки

Excel Windows
и
Excel Macintosh

Вопросы и решения

Работа и общение

Работа форума и сайта

Функции листа Excel

= Мир MS Excel/Справочники

  • 1
  • 2
  • 3
  • Математические функции [14]
    Функции обработки строк [27]
    Функции загрузки данных [8]
    Функции обработки системных параметров [16]
    Функции работы с датами и временем [21]
    Функции работы с объектами [4]
    Функции форматирования [5]
    ExpressionОбязательный аргумент — строка, в которой требуется замена
    FindОбязательный аргумент — подстрока, которую нужно заменить
    ReplaceОбязательный аргумент — подстрока замены
    StartНеобязательный аргумент — указывает позицию
    CountНеобязательный аргумент — указывает число
    CompareНеобязательный аргумент — вид сравнения

    —>Счетчики : 64907 | —>Добавил : Serge_007

—>Всего комментариев : 5

Replace («1011112», «1», «2», 5, 1) выдаёт 212, а надо 1011212

Это что — глюк или фича? И как в таких случаях быть?

На сайте Микрософт к функции Replace висит заметка

Значение, возвращаемое функцией Replace является строкой, которая начинается с позиции, указанной параметром Start, и завершается в конце строки Expression, с заменой подстрок Find значениями Replace.

Т.е. Если хочешь получить нормальную замену, надо к результату добавить начало исходной строки до позиции Start.

Функции VBA для работы с текстом

  • ASC ()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC( «D» ) вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
    • AscB () — возвращает только первый байт числового кода для символа.
    • AscW () — возвращает код для символа в кодировке Unicode
  • Chr () — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — » ), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.

    Dim sWord As String sWord = Chr(34) & «Слово в кавычках» & Chr(34)

    Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().
    InStr () и InStrRev ()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.

    Dim sStr As String sStr = «w» If InStr(1, «Hello, World!», sStr, vbTextCompare) > 0 Then MsgBox «Искомое слово присутствует!» Else MsgBox «Искомое слово отсутствует!» End If

    Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки
    Left (), Right (), Mid ()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.

    Dim sStr As String sStr = «Hello, World!» MsgBox Mid(sStr, 1, 5)

    Dim sStr As String sStr = «Hello, World!» MsgBox Replace(sStr, «Hello», «Bay»)

    Dim sStr As String sStr = «Hello, World!» MsgBox StrConv(«Hello, World!», vbUpperCase)

    В качестве второго параметра параметра могут применяться константы:

    • vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
    • vbLowerCase: Преобразует все текстовые символы в нижний регистр
    • vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
    • *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
    • *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
    • **vbKatakana: Преобразует символы Hiragana в символы Katakana
    • **vbHiragana: Преобразует символы Katakana в символы Hiragana
    • ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
    • ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию

    * применимо для локализацией Дальнего востока
    ** применимо только для Японии
    *** не поддерживается операционными системами под управлением Macintosh

  • StrReverse () — «перевернуть» строку, разместив ее символы в обратном порядке. Функция работает только начиная от Excel 2000 и выше. Пример использования функции, а так же иные методы переворачивания слова можно посмотреть в этой статье: Как перевернуть слово?
  • Tab () — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.
  • String () — позволяет получить строку из указанного количества символов (которые опять-таки указываются Вами). Обычно используются для форматирования вывода совместно с функцией Len().
  • Читать еще:  Cstr vba excel описание
    Ссылка на основную публикацию
    Adblock
    detector