Изменение значений ячеек Excel с помощью макросов VBA — часть 2

Еще несколько полезных скриптов VBA для Excel. Для вставки в код макроса не забудьте изменить название листа и диапазон ячеек на свой.

Убрать всё после любого символа (в примере после знака ‘+’). Обратите внимание, если вы хотите поменять символ, необходимо сделать это в двух строках — во 2-ой и 3-ей. Вторая строка была добавлена для того, чтобы не было ошибок в случае отсутствия искомого символа:

For Each c In Worksheets("list1").Range("B2:B72").Cells
  c.Value = CStr(c.Value) + "+"
  spacePos = InStr(1, c.Value, "+")
  artLen = spacePos - 1
  c.Value = Left(c.Value, artLen)
Next

Сделать все первые буквы в ячейках прописными:

For Each c In Worksheets("list1").Range("F2:F72").Cells
  c.Value = UCase(Mid(c.Value, 1, 1)) + Mid(c.Value, 2)
Next

Добавить плюс перед ‘7’ (может пригодится при редактировании списка номеров телефонов):

For Each c In Worksheets("list1").Range("F2:F72").Cells
  if Mid(c.Value, 1, 1) = "7" then
    c.Value = "+" + CStr(c.Value)
  endif
Next

Если здесь нет нужного вам макроса, посмотрите ещё часть 1.

Изменение значений ячеек Excel с помощью макросов VBA

Небольшая памятка по работе с макросами VBA Excel. Для вставки в код, измените название листа и диапазон ячеек на свой.

Добавить текст к значениям (в данном случае добавить слово «add» в начале ячеек):

For Each c In Worksheets("list1").Range("F7:F44").Cells 
  c.Value = "add" + CStr(c.Value)
Next

Добавить к значениям текст из соседней ячейки справа:

For Each c In Worksheets("list1").Range("F7:F44").Cells
  c.Value = CStr(c.Value) + " " + c.Cells(1, 2).Value
Next

Вывести строку обрезанную до 6 символов:

For Each c In Worksheets("list1").Range("J3:J175").Cells
  c.Value = Left(c.Value, 6)
Next

Убрать все после первого пробела:

For Each c In Worksheets("list1").Range("J3:J175").Cells
  c.Value = CStr(c.Value) + " "
  spacePos = inStr(1, c.Value, " ")
  artLen = spacePos - 1
  c.Value = Left(c.Value, artLen)
Next

Убрать все до первого пробела, затем убрать пробелы в начале строки:

For Each c In Worksheets("list1").Range("D2:D79").Cells
  spacePos = InStr(1, c.Value, " ")
  c.Value = Mid(c.Value, spacePos)
  c.Value = LTrim(c.Value)
Next

Если здесь нет нужного вам макроса, посмотрите ещё часть 2.