Excel макрос добавить текст

I’ve been working with SQL and Excel Macros, but I don’t know how to add text to a cell.

I wish to add the text "01/01/13 00:00" to cell A1. I can’t just write it in the cell because the macro clears the contents of the sheet first and adds the information afterwards.

How do I do that in VBA?

Our Man in Bananas's user avatar

asked Dec 16, 2013 at 13:43

Phil's user avatar

2

Range("$A$1").Value = "'01/01/13 00:00" will do it.

Note the single quote; this will defeat automatic conversion to a number type. But is that what you really want? An alternative would be to format the cell to take a date-time value. Then drop the single quote from the string.

answered Dec 16, 2013 at 13:44

Bathsheba's user avatar

BathshebaBathsheba

231k33 gold badges359 silver badges477 bronze badges

3

You could do

[A1].Value = "'O1/01/13 00:00"

if you really mean to add it as text (note the apostrophe as the first character).

The [A1].Value is VBA shorthand for Range("A1").Value.

If you want to enter a date, you could instead do (edited order with thanks to @SiddharthRout):

[A1].NumberFormat = "mm/dd/yyyy hh:mm;@"
[A1].Value = DateValue("01/01/2013 00:00")

answered Dec 16, 2013 at 13:47

Floris's user avatar

FlorisFloris

45.7k6 gold badges70 silver badges122 bronze badges

7

You need to use Range and Value functions.
Range would be the cell where you want the text you want
Value would be the text that you want in that Cell

Range("A1").Value="whatever text"

Manos Nikolaidis's user avatar

answered Mar 7, 2016 at 10:21

Garry's user avatar

GarryGarry

611 silver badge1 bronze badge

You can also use the cell property.

Cells(1, 1).Value = "Hey, what's up?"

Make sure to use a . before Cells(1,1).Value as in .Cells(1,1).Value, if you are using it within With function. If you are selecting some sheet.

enamoria's user avatar

enamoria

8762 gold badges11 silver badges29 bronze badges

answered Dec 19, 2018 at 6:40

Neha Kalani's user avatar

Skip to content

На чтение 2 мин. Просмотров 4.8k.

Что делает макрос: Бывают случаи, когда необходимо добавить текст в начало или конец ячеек в диапазоне. Например, вам может нужно добавить код города к набору телефонных номеров. Этот макрос демонстрирует, как можно автоматизировать задачи стандартизации данных, которые требуют добавления данных значений.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

Этот макрос использует два объекта Range переменных пройти через целевой диапазон, усиливая для каждого оператора, чтобы активировать каждую ячейку в целевом диапазоне.
Каждый раз, когда клетка активируется, макрокоманда прибавляет код города к началу значения ячейки.

Код макроса

Sub DobavitTekst()
'Шаг 1: Объявляем переменные
Dim MyRange As Range
Dim MyCell As Range
'Шаг 2: Сохранить книгу прежде,чем изменить ячейки?
Select Case MsgBox("Перед изменением ячеек. " & _
"Сохранить книгу?", vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select
'Шаг 3: Определение целевого диапазона
Set MyRange = Selection
'Шаг 4: Запускаем цикл по диапазону
For Each MyCell In MyRange
'Шаг 5: Убедитесь, что ячейка имеет формат текста
If Not IsEmpty(MyCell) Then
MyCell = "(972) " & MyCell
End If
'Шаг 6: Получите следующую ячейку в диапазоне
Next MyCell
End Sub

Как этот код работает

  1. Шаг 1 объявляет две переменные объекта Range.
  2. Мы должны сохранить книгу перед запуском макроса.
  3. Шаг 3 заполняет переменную MyRange с целевым диапазоном. В этом примере мы используем выбранный диапазон — диапазон, который был выбран в электронной таблице.
  4. Шаг 4 начинает цикл через каждую ячейку в целевом диапазоне.
  5. После того, как ячейка активируется, мы используем амперсанд (&), чтобы объединить код зоны с ячейкой. Если вам нужно добавить текст в конец значения ячейки, нужно просто поместить амперсанд и текст в конце. Например, MyCell = MyCell & «добавлен текст».
  6. Шаг 6 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается.

Как использовать

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Очень часто при работе с выгрузками данных из баз приходится упорядочивать и систематизировать информацию, соединять несколько текстов в один.

Например, существует перечень поставщиков сока для крупной компании. У каждого поставщика имеется несколько наименований продукции.

Нам необходимо выбрать и записать в одну строку все названия продукции, относящиеся к определенному поставщику, соединить их.

соединение текста в эксель

Для реализации такого действия необходимо воспользоваться сцепкой текста по заданным условиям, такой функции нет, поэтому создадим специальный макрос добавляющий функцию условной сцепки значений.

Чтобы добавить макрос, следует выполнить следующие действия:

  • Войти в панель разработчика;
  • Нажать «Просмотр кода»;
  • В окне project кликнуть правой кнопкой мыши и вставить модуль;

    Вставить модуль

  • Открыть просмотр кода нового модуля;
  • Скопировать приведенный ниже код макроса VBA и вставить его в модуль;
  • Сохранить файл.

Код макроса VBA :

Function Scepka(DiapazonScepki As Range, DiapazonPoiska As Range, Uslovie As String)

Dim Delitel As String, i As Long , OutText As String

‘назначаем переменные для работы макроса DiapazonScepki — это диапазон с текстом, который следует сцепить; DiapazonPoiska — это диапазон условий для сравнения; Uslovie — это то условие, которое мы ищем; Delitel — символ делителя.

Delitel = «, » ‘указываем разделитель (символ, который будет разделять сцепленный текст, можно поставить пробел или пустоту «» — тогда текст сольется в одно слово)

Scepka = CVErr(xlErrRef)

Exit Function

End If ‘если диапазоны с данными для проверки и для сцепки отличаются по длине — функция выдает ошибку и закрывается

For i = 1 To DiapazonPoiska.Cells.Count

If DiapazonPoiska.Cells(i) Like Uslovie And Len(DiapazonScepki.Cells(i)) > 0 Then OutText = OutText & DiapazonScepki.Cells(i) & Delitel

Next i ‘сверяем ячейки между собой и присваиваем переменной OutText подходящие по условиям текстовые значения. Для точного совпадения оператор Like следует заменить на знак «=».

Scepka = Left(OutText, Len(OutText) — Len(Delitel))

End Function

Теперь когда функция условной сцепки текста добавлена в книгу Excel при помощи макроса , ее можно использовать для обработки текста следующим образом:

  • Поставить курсор в ячейку, предназначенную для внесения соединенного (сцепленного) текста.
  • Активировать мастер функций.
  • Среди функций «Определенных пользователем» выбрать Scepka.

    Мастер функций

  • В поле DiapazonScepki внести адреса ячеек, которые будут соединяться
  • В поле DiapazonPoiska внести адреса ячеек, по которым будет произведен поиск (сравнение).
  • В поле Uslovie внести условие поиска.

    Использование созданной функции

  • Нажать «Ок»

Похожее:

Иногда вам может потребоваться добавить один и тот же конкретный текст в начало или конец всех ячеек в выделенном фрагменте. Если вы добавляли текст в каждую ячейку вручную по одной, это должно занять много времени. Есть способы попроще? Да, есть много простых приемов добавления одного и того же текста в начало или конец всех ячеек в выделенном фрагменте.

Добавить указанный текст в начало / конец всех ячеек с формулами

Добавить указанный текст в начало / конец всех ячеек с помощью VBA

Добавить указанный текст в начало/конец всех эллов с помощью Kutools for Excel хорошая идея3

Добавить указанный текст в указанную позицию всех ячеек с помощью Kutools for Excel хорошая идея3


Добавить указанный текст в начало / конец всех ячеек с формулами

Есть две формулы для добавления указанного текста в начало или конец всех выбранных ячеек в Microsoft Excel.

Метод 1: & формула

Введите = «Класс A:» & A2 в ячейке C2, а затем перетащите маркер заполнения вниз в ячейки, к которым вы хотите применить эту формулу. И конкретный текст был добавлен перед всеми ячейками, см. Снимок экрана:

документ добавить конкретный текст 1

Метод 2: формула конкатенации

Введите = Concatenate («Класс A:»; A2) в ячейке C2, а затем перетащите и скопируйте эту формулу в ячейки, которые вы хотите использовать, см. снимок экрана:

документ добавить конкретный текст 2

Ноты:

1. Если вы хотите добавить другой указанный текст в каждую ячейку, просто замените Класс A: с вашим текстом в обеих формулах.

2. Формулы = A2 & «: класс A» и = Concatenate (A2; «: класс A») добавлю : Класс А в конце ячеек.

3. Обе формулы не изменяют содержимое выделения напрямую.


Добавить указанный текст в начало / конец всех ячеек с помощью VBA

Если вы хотите добавить указанный текст в каждую ячейку выделенного фрагмента, следующий макрос VBA упростит вашу работу.

1. Выберите диапазон, в который вы добавите указанный текст;

2. Удерживайте другой + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.

3. Нажмите Вставить > Модулии вставьте следующий код VBA в окно модуля.

VBA: добавление указанного текста в начало каждой ячейки:

Sub AppendToExistingOnLeft()
Dim c As Range
For Each c In Selection
If c.Value <> "" Then c.Value = "CN- " & c.Value 
Next
End Sub

4, нажмите F5 ключ для запуска этого макроса. И ко всем ячейкам будет добавлено значение CN- перед содержимым ячейки.

документ добавить конкретный текст 3

Ноты: 1. Чтобы добавить определенный текст в конец каждой ячейки, примените следующий код VBA.

VBA: добавление указанного текста в конец каждой ячейки:

Sub AppendToExistingOnRight()
Dim c as range
For each c in Selection
If c.value <> "" Then c.value = c.value & "-CN" 
Next
End Sub

И вы получите следующий результат:

документ добавить конкретный текст 4

2. вы можете изменить переменную «CN-» или «-CN«из приведенных выше кодов.


Добавить указанный текст в начало/конец всех ячеек с помощью Kutools for Excel

Kutools for Excel‘s Add Text инструмент поможет вам быстро добавить указанный текст в начало или конец каждой ячейки в выделенном фрагменте.

После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)

1. Выберите диапазон, в который вы добавите указанный текст.

2, Нажмите Кутулс > Text > Add Text…. Смотрите скриншот:

документ добавить конкретный текст 11

3. В Add Text диалоговом окне введите текст, который необходимо добавить в поле Text пунктом.

(1.) Если вы проверите Before first character из Position раздел, и конкретный текст будет добавлен перед всеми значениями ячеек, см. снимок экрана:

документ добавить конкретный текст 6

(2.) Если вы проверите After last character из Position раздел, и конкретный текст будет добавлен в конце значений ячеек, см. снимок экрана:

документ добавить конкретный текст 7

Ноты:

1. Kutools for Excel‘s Add Text инструмент позволяет предварительно просмотреть изменения в выделении в разделе Предварительный просмотр.

2. Если вы проверите Skip non-text cells вариант, этот инструмент не будет добавлять указанный текст в ячейки с нетекстовым содержимым.


Добавить указанный текст в указанную позицию всех ячеек с помощью Kutools for Excel

Применение Kutools for Excel‘s Add Text функция, вы можете не только добавить указанный текст в начало или конец ячеек, но также вы можете добавить указанный текст в указанное положение ячеек.

После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)

1. Выберите диапазон, в который нужно добавить текст, и нажмите Кутулс > Text > Add Text.

2, Add Text Появится диалоговое окно, введите указанный текст и укажите определенную позицию, в которую вы хотите вставить текст в поля. Смотрите скриншот:

Здесь я набираю 3 в Specify текстовое поле означает добавление текста после третьего символа строки.

документ добавить конкретный текст 8

3. Нажмите Ok or Apply. Указанный текст был добавлен в указанную позицию ячеек. Смотрите скриншот:

документ добавить конкретный текст 9

Наконечник:

(1) В Specify текстовое поле, вы можете вводить числа через запятую, чтобы добавить текст в несколько позиций одновременно.
документ добавить конкретный текст 12

(2) Если вы хотите добавить текст перед каждой прописной буквой, 1st letter is uppercase вариант в Add Text утилита может вам помочь.
документ добавить конкретный текст 10

Кроме того, вы можете добавлять текст перед каждой строчной буквой или каждой цифровой буквой.

Нажмите «Загрузить и получить бесплатную пробную версию». Kutools for Excel Сейчас !


Демонстрация: добавление текста в начало или конец всех ячеек


Относительные статьи:

  • Добавить строки текста в несколько ячеек
  • Добавление / вставка ведущих нулей к числам или тексту
  • Добавить / вставить префикс или суффикс к выбранным ячейкам, строкам и столбцам
  • Добавить символ процента для нескольких чисел в ячейках

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Группа: Пользователи

Ранг: Новичок

Сообщений: 13


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Добрый день, неоднократно обращался к этоу замечательному форуму, но вот опять вынужден обратиться, нужен очень простой макрос который будет вставлять нужное слово или текст в активную ячейку, не могу сам найти , все перерыл , помогите пожалуста !!! :) :) :)


Всем бобра

Сообщение отредактировал AxeqПятница, 08.04.2016, 10:49

Работа с буфером обмена в VBA Excel: копирование и вставка ячеек, копирование текста из переменной, очистка буфера обмена. Объект DataObject. Примеры.

Копирование и вставка ячеек

Копирование содержимого и форматов ячеек (диапазона) в буфер обмена осуществляется методом Range.Copy, а вставка – методом Worksheet.Paste:

‘Копирование одной ячейки в буфер обмена

Range(«A10»).Copy

Cells(10, 1).Copy

‘Копирование диапазона ячеек в буфер обмена

Range(«B8:H12»).Copy

Range(Cells(8, 2), Cells(12, 8)).Copy

‘Вставка ячейки (диапазона) из буфера обмена на рабочий лист

ActiveSheet.Paste Range(«A20»)

ActiveSheet.Paste Cells(20, 1)

При вставке диапазона ячеек из буфера обмена на рабочий лист достаточно указать верхнюю левую ячейку места (диапазона) вставки.

Для вставки из буфера обмена отдельных компонентов скопированных ячеек (значения, формулы, примечания и т.д.), а также применения к диапазону транспонирования или вычислений, используется метод Range.PasteSpecial (специальная вставка).

Буфер обмена и переменная

Передача текста между переменной и буфером обмена в VBA Excel осуществляется с помощью объекта DataObject. Стоит иметь в виду, что на некоторых компьютерах DataObject может некорректно работать при открытом окне проводника.

Объект DataObject

DataObject – это область временного хранения форматированных фрагментов текста, используемая в операциях переноса данных.

Подробнее об элементе DataObject вы можете прочитать на сайте разработчиков.

Методы объекта DataObject:

Метод Описание
GetFromClipboard Копирует данные из буфера обмена в DataObject
GetText Извлекает текстовую строку из объекта DataObject в указанном формате
PutInClipboard Перемещает данные из DataObject в буфер обмена
SetText Копирует текстовую строку в DataObject, используя указанный формат

Копирование текста из переменной в буфер обмена

Sub Primer2()

Dim s As String, myData As New DataObject

s = «Копирование текста из переменной в буфер обмена»

‘Копируем текст из переменной в DataObject

myData.SetText (s)

‘Перемещаем текст из DataObject в буфер обмена

myData.PutInClipboard

‘Проверяем содержимое буфера обмена

ActiveSheet.Paste Range(«A1»)

End Sub

Копирование текста из буфера обмена в переменную

Sub Primer3()

Dim s As String, myData As New DataObject

Range(«A1») = «Копирование текста из буфера обмена в переменную»

‘Копируем данные из ячейки в буфер обмена

Range(«A1»).Copy

‘Копируем данные из буфера обмена в DataObject

myData.GetFromClipboard

‘Извлекаем текст из объекта DataObject и присваиваем переменной s

s = myData.GetText

‘Проверяем содержимое переменной s

MsgBox s

End Sub

Очистка буфера обмена

Специального метода для очистки буфера обмена в VBA Excel нет. Для решения этой задачи можно использовать выход из режима вырезания-копирования:

Application.CutCopyMode = False

Следующий пример демонстрирует вставку скопированной ячейки "A1" в ячейки "A2" и "A3" и отсутствие вставки в ячейки "A4" и "A5" после строки Application.CutCopyMode = False:

Sub Primer4()

Range(«A1») = «Очистка буфера обмена»

Range(«A1»).Copy

ActiveSheet.Paste Range(«A2»)

ActiveSheet.Paste Range(«A3»)

Application.CutCopyMode = False

On Error Resume Next

ActiveSheet.Paste Range(«A4»)

ActiveSheet.Paste Range(«A5»)

End Sub

Оператор On Error Resume Next необходим для обработки (пропуска) ошибки, возникающей при вставке из пустого буфера обмена.

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

В некоторых системах, начиная с Windows 8, метод DataObject.PutInClipboard не работает правильно: если открыт хотя бы один экземпляр Проводника (папка), в буфер обмена записываются два квадратика. Следующие функции должны решить эту проблему:

‘Функция записи текста в буфер обмена

Function SetClipBoardText(ByVal Text As Variant) As Boolean

    SetClipBoardText = CreateObject(«htmlfile»).parentWindow.clipboardData.SetData(«Text», Text)

End Function

‘Функция вставки текста из буфера обмена

Function GetClipBoardText() As String

    On Error Resume Next

    GetClipBoardText = CreateObject(«htmlfile»).parentWindow.clipboardData.GetData(«Text»)

End Function

‘Функция очистки буфера обмена

Function ClearClipBoardText() As Boolean

    ClearClipBoardText = CreateObject(«htmlfile»).parentWindow.clipboardData.clearData(«Text»)

End Function

Пример использования функций для работы с буфером обмена:

Sub Primer()

Dim s As String

    s = «Копирование текста из переменной в буфер обмена»

    ‘Копируем текст в буфер обмена

    SetClipBoardText (s)

    ‘Вставляем текс из буфера обмена в ячейку «A1»

    Range(«A1») = GetClipBoardText

    ‘Очищаем буфер обмена, если это необходимо

    ClearClipBoardText

End Sub


Понравилась статья? Поделить с друзьями:
  • Excel макрос для фильтрации данных
  • Excel макрос для удаления пустых строк в excel
  • Excel макрос для удаления лишних пробелов
  • Excel макрос для удаления дубликатов
  • Excel макрос для удаления всех макросов в книге