Как в эксель перенести слово в одной ячейке

Создание макросов и пользовательских функций на VBA

69569 14.10.2012 Скачать пример

Введение

Всем нам приходится - кому реже, кому чаще - повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую "рутинную составляющую" - одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.

Макрос - это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых  нужных нам действий, которые нам не хочется выполнять вручную.

В принципе, существует великое множество языков программирования (Pascal, Fortran, C++, C#, Java, ASP, PHP...), но для всех программ пакета Microsoft Office стандартом является именно встроенный язык VBA. Команды этого языка понимает любое офисное приложение, будь то Excel, Word, Outlook или Access.

Способ 1. Создание макросов в редакторе Visual Basic

Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно - редактор программ на VBA, встроенный в Microsoft Excel.

  • В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис - Макрос - Редактор Visual Basic (Toos - Macro - Visual Basic Editor).
  • В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer). Выбираем Файл - Параметры - Настройка ленты (File - Options - Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer). Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic (Visual Basic Editor)

    как в эксель перенести слово в одной ячейке:

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией  Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

как в эксель перенести слово в одной ячейке

Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:

  • Обычные модули - используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert - Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:

    как в эксель перенести слово в одной ячейке

  • Модуль Эта книга - также виден в левом верхнем углу редактора Visual Basic в окне, которое называется Project Explorer. В этот модуль обычно записываются макросы, которые должны выполнятся при наступлении каких-либо событий в книге (открытие или сохранение книги, печать файла и т.п.):

    как в эксель перенести слово в одной ячейке

  • Модуль листа - доступен через Project Explorer и через контекстное меню листа, т.е. правой кнопкой мыши по ярлычку листа - команда Исходный текст (View Source). Сюда записывают макросы, которые должны выполняться при наступлении определенных событий на листе (изменение данных в ячейках, пересчет листа, копирование или удаление листа и т.д.)

    как в эксель перенести слово в одной ячейке

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

как в эксель перенести слово в одной ячейке

Давайте разберем приведенный выше в качестве примера макрос Zamena:

  • Любой макрос должен начинаться с оператора Sub, за которым идет имя макроса и список аргументов (входных значений) в скобках. Если аргументов нет, то скобки надо оставить пустыми.
  • Любой макрос должен заканчиваться оператором End Sub.
  • Все, что находится между Sub и End Sub - тело макроса, т.е. команды, которые будут выполняться при запуске макроса. В данном случае макрос выделяет ячейку заливает выделенных диапазон (Selection) желтым цветом (код = 6) и затем проходит в цикле по всем ячейкам, заменяя формулы на значения. В конце выводится окно сообщения (MsgBox).

С ходу ясно, что вот так сразу, без предварительной подготовки и опыта в программировании вообще и на VBA в частности, сложновато будет сообразить какие именно команды и как надо вводить, чтобы макрос автоматически выполнял все действия, которые, например, Вы делаете для создания еженедельного отчета для руководства компании. Поэтому мы переходим ко второму способу создания макросов, а именно...

Способ 2. Запись макросов макрорекордером

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

  • Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу - запись останавливается.
  • Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
  • Если во время записи макроса макрорекордером вы ошиблись - ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) - во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.

Чтобы включить запись необходимо:

  • в Excel 2003 и старше - выбрать в меню Сервис - Макрос - Начать запись (Tools - Macro - Record New Macro)
  • в Excel 2007 и новее - нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

как в эксель перенести слово в одной ячейке

  • Имя макроса - подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
  • Сочетание клавиш - будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис - Макрос - Макросы - Выполнить (Tools - Macro - Macros - Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
  • Сохранить в... - здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
    • Эта книга - макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
    • Новая книга - макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
    • Личная книга макросов - это специальная книга Excel  с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording).

Запуск и редактирование макросов

Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или - в старых версиях Excel - через меню Сервис - Макрос - Макросы (Tools - Macro - Macros):

как в эксель перенести слово в одной ячейке

  • Любой выделенный в списке макрос можно запустить кнопкой Выполнить (Run).
  • Кнопка Параметры (Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
  • Кнопка Изменить (Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

Создание кнопки для запуска макросов

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

Кнопка на панели инструментов в Excel 2003 и старше

Откройте меню Сервис - Настройка (Tools - Customize) и перейдите на вкладку Команды (Commands). В категории Макросы легко найти веселый желтый "колобок" - Настраиваемую кнопку (Custom button):

как в эксель перенести слово в одной ячейке

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

как в эксель перенести слово в одной ячейке

Кнопка на панели быстрого доступа в Excel 2007 и новее

Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar):

как в эксель перенести слово в одной ячейке

Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:

как в эксель перенести слово в одной ячейке

Кнопка на листе

Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:

  • В Excel 2003 и старше - откройте панель инструментов Формы через меню Вид - Панели инструментов - Формы (View - Toolbars - Forms)
  • В Excel 2007 и новее - откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer) 

Выберите объект Кнопка (Button):

как в эксель перенести слово в одной ячейке

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

Создание пользовательских функций на VBA

Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция - только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert - Module и введем туда текст нашей функции:

как в эксель перенести слово в одной ячейке

Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка - Функция) в категории Определенные пользователем (User Defined):

как в эксель перенести слово в одной ячейке

После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

как в эксель перенести слово в одной ячейке


 

 

 

Страницы: 1  2  
как в эксель перенести слово в одной ячейке
Николай Павлов
16.04.2013 13:05:45
Записал и выложил дополнительно видео по теме. Кому лень читать - смотрим и слушаем как в эксель перенести слово в одной ячейке
как в эксель перенести слово в одной ячейке
Анастасия Князькова
05.04.2016 14:55:21
Николай, а как сделать макрос, чтоб в выбранном диапазоне ячеек данные округлялись по функции =округл(число;число_разрядов)

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

Как это сделать???

Function ZVI_Round(V As Double, Optional DecPlaces As Integer = 0) As Double
If DecPlaces < 0 Then
ZVI_Round = Round(V / 10 ^ -DecPlaces + V * 2E-16, 0) * 10 ^ -DecPlaces
Else
ZVI_Round = Round(V + V * 2E-16, DecPlaces)
End If
If Abs(ZVI_Round) = 0 Then ZVI_Round = 0 ' Exclude -0 return value
End Function



Спасибо.
как в эксель перенести слово в одной ячейке
Сергей Иванов
20.04.2013 12:09:32
Спасибо огромное !
Читать ни разу не лень - читаем, перечитываем и снова читаем (смотрим в книгу, видим  ...в общем то, что примерно и хотел сказать автор), НО ВИДЕО КРУЧЕ !
Продолжения будут ?
как в эксель перенести слово в одной ячейке
Николай Павлов
07.05.2013 23:11:47
Обязательно! как в эксель перенести слово в одной ячейке
как в эксель перенести слово в одной ячейке
Катя Афанасьева
31.05.2013 16:39:07
Где видео находится, можете ссылку кинуть.
как в эксель перенести слово в одной ячейке
Николай Павлов
31.05.2013 19:41:39
http://youtu.be/_3OLOaoY6H4
как в эксель перенести слово в одной ячейке
Катя Афанасьева
04.06.2013 14:51:46
Спасибо!
как в эксель перенести слово в одной ячейке
Вячеслав Тимохин
07.06.2013 14:05:27
Подскажите плз, как сделать так, чтобы перед удалением данных из выделенных ячеек, выводилось окно с предупреждением "Данные будут удалены! Вы уверены?". С двумя кнопками. Да и Нет. при нажатии ДА - данные удаляются, при нажатии НЕТ, соответственно ничего не происходит. Спасибо!
как в эксель перенести слово в одной ячейке
Сергей
16.06.2013 21:08:21
А если создать форму с двумя кнопками Да и Нет. На кнопку Да данные удаляются,  при нажатии НЕТ свернуть форму (userform1.Hide)
как в эксель перенести слово в одной ячейке
Gor Badamyan
27.03.2014 17:02:33
Sub Заменитель()  If da = vbOK Then  MsgBox "Формулы превращались в значение", vbInformation, "Заменитель"  For Each Cell In Selection  Cell.Formula = Cell.Value  Next Cell  Else  MsgBox "Формулы не изменены"  End If  End Sub
 
как в эксель перенести слово в одной ячейке
Юрий Васильев
01.07.2013 22:19:15
Здравствуйте! Подскажите, как удалить не нужные макросы?
как в эксель перенести слово в одной ячейке
Николай Павлов
02.07.2013 10:24:09
Нажать ALT+F11, зайти в редактор Visual Basic, удалить правой кнопкой модули с макросами или хотя бы текст из этих модулей.
как в эксель перенести слово в одной ячейке
Stanislav Ol.
11.09.2013 08:52:13
Добрый день!
Вопрос начинающего, но очень нужно...
Подскажите, пожалуйста, а есть ли возможность назначать запуск разных макросов из обычного выпадающего меню? Т.е. чтобы каждый пункт меню соответствовал определенному макросу?
(а еще хотелось бы, чтобы макрос запускался не сразу по выбору пункта меню, а кнопкой рядом. Выбрали пункт и нажали, условно, "Go" )
И, связанный с этим вопрос, как сделать так, чтобы при установке галочки в чекбоксе запускался один макрос, при снятии галки - другой.

Возможно ли это сделать и как?

Заранее спасибо!
как в эксель перенести слово в одной ячейке
Мария
19.10.2013 17:29:47
Подскажите, пожалуйста, как создать кнопку с макросом, который бы отменял действие предыдущих макросов, например, убрать итоги и отменить сортировку.
Спасибо!
как в эксель перенести слово в одной ячейке
Николай Павлов
22.10.2013 01:08:03
Написать макрос, отменяющий итоги и сортирующий таблицу как вам нужно. И повесить его на кнопку.
Отменить действия предыдущих макросов напрямую в Excel невозможно, к сожалению.
как в эксель перенести слово в одной ячейке
Владимир Логинов
04.12.2013 14:55:51
Добрый день!
Есть необходимость создать макрос для следующих действий:
В ячейках есть вот такие вот данные:
Ц0000123
Ц0000234
Я каждый раз захожу в ячейки и вручную убираю начало ячейки Ц0000, чтобы остались только 123, 234 и т.д.
Если макрорекодером записывать эти телодвижения, в коде записываются номера конкретных ячеек, в которых я что то делал. А можно как то макрос модернизировать, чтобы он применялся только к тем ячейкам, который выделены?

Заранее благодарен за совет!
как в эксель перенести слово в одной ячейке
Сергей Гончаров
05.12.2013 13:01:17
Я выхожу из такой ситуации через функцию "Найти и Заменить" В строке Найти Ц0000, заменить пустая строка, - заменить все.
как в эксель перенести слово в одной ячейке
Googlogmob
11.02.2014 17:16:33
Функция ПСТР  не подойдет?
как в эксель перенести слово в одной ячейке
Владимир Логинов
05.12.2013 15:03:19
Отличный вариант! Спасибо! Что то я за макросы заморочился, а ведь есть варианты и попроще как в эксель перенести слово в одной ячейке
как в эксель перенести слово в одной ячейке
SAMIR GURBANOV
25.12.2013 15:42:20
Здравствуйте,Николай.Подскажите пожалуйста,а можно ли создать пользовательскую функцию с двумя и более аргументами?Например,функцию подсчёта процента,где,предположим,первый аргумент это число,из которого извлекается процент,а второй-само количество процентов,которые нужно извлечь.Попробовал написать по принципу вышеупомянутого НДС,но формула выдаёт ошибку (честно говоря,с макросами дела никогда не имел,и до посещения вашего сайта, экселем даже не интересовался).Не могли бы пример такого кода показать.
Заранее благодарю.
как в эксель перенести слово в одной ячейке
Николай Павлов
28.12.2013 11:13:38
Запросто - только укажите два аргумента, а не один. Будет выглядеть примерно так:
  Function ПРОЦЕНТ(Число, Проценты)  ПРОЦЕНТ = Число*Проценты  End Function  
как в эксель перенести слово в одной ячейке
Ольга Скоробогатая
26.12.2013 22:35:49
Просто люблю Вас, Николай Павлов, и EXCEL!  
как в эксель перенести слово в одной ячейке
Николай Павлов
28.12.2013 11:10:49
Насчет меня - не уверен, а вот Excel - однозначно есть за что! как в эксель перенести слово в одной ячейке
С Наступающим!
как в эксель перенести слово в одной ячейке
SAMIR GURBANOV
28.12.2013 13:40:43
Знаете,а я ведь вначале так и делал,просто использовал в качестве аргументов слова divide & multiply (PERCENT=divide*multiply),что вероятно делать было нельзя,и формула выдавала ошибку (VALUE).Стоило только заменить аргументы (PERCENT=number*percentage),и всё встало на место.
Огромное спасибо,Николай.С Наступающим,и побольше достижений в новом году.
как в эксель перенести слово в одной ячейке
Николай Павлов
04.01.2014 11:23:24
Спасибо, Самир! И вам того же!
как в эксель перенести слово в одной ячейке
Инна Сиринек
03.01.2014 10:22:58
Николай, записала макрос также как и вы в видеоуроке, но почемуто выдает ошибку при выполнении
"Run-time error ‘438’:
Object doesn’t support this property or method"
как в эксель перенести слово в одной ячейке
Николай Павлов
04.01.2014 11:24:31
Инна, видимо не совсем так же - иначе ошибку не выдавал бы как в эксель перенести слово в одной ячейке  Советую скачать пример в заголовке статьи, посмотреть код и сравнить с вашим.
как в эксель перенести слово в одной ячейке
sensorria S
07.01.2014 20:25:55
Подскажите, пожалуйста.
Задача следующая, в каждой из ячеек записаны предложения/значения и мне нужно удалять одно слово повторяющееся из каждой ячейки, слово Microsoft. Данное слово есть не в каждой ячейке.

Mcrosoft Excel
Microsoftt Word
Microsoft Project
Exchange
Microsoft Windows Server CAL
Remote Desctop

В результате должно получится без слова Microsoft:

Excel
Word
Project
Exchange
Windows Server CAL
Remote Desctop


Искала, гуглила, но так решения и не нашла, есть информация об удаление дубликатов, есть удаление первого, центрального или последнего слова в ячейке, а вот удаление конкретного ненужного слова из ячеек одного столбца я не нашла. Подскажите, пожалуйста, как это можно сделать.
Заранее благодарю.
как в эксель перенести слово в одной ячейке
Николай Павлов
08.01.2014 09:50:47
Вам нужна обычная замена. Выделяете диапазон с данными, жмете CTRL+H, в строку Найти вводите Microsoft, в строку Заменить на ничего не вводите и жмете кнопку Заменить все.
как в эксель перенести слово в одной ячейке
Anastasia90
27.01.2014 13:16:42
Николай, добрый день.
Подскажите, пожалуйста, как записать макрос, чтоб он не привязывался к определенной книге с определенным названием.
как в эксель перенести слово в одной ячейке
Николай Павлов
27.01.2014 16:54:13
При записи сохранить макрос в Личной книге макросов (Personal Macro Workbook) - см. Способ 2.
как в эксель перенести слово в одной ячейке
Anastasia90
28.01.2014 10:50:58
Я немного не это имела ввиду. Например, я записала макрос, он может работать во всех книгах(но только в определенной книге правильно срабатывает, также во вкладках с определенным названием). А я хотела бы, чтоб он к именам книги, листов не привязывался. К примеру, у меня есть пользовательский макрос(я его скачала), называется сбор данных,он собирает данные со всех листов в один, ему все равно как называются эти листы. А когда я пишу макрос, если лист назван не так, как был назван, когда я его писала, то он не сработает...
как в эксель перенести слово в одной ячейке
Николай Павлов
28.01.2014 10:52:44
Анастасия, для этого надо макрос создавать не с помощью макрорекордера, а программировать самому, т.е. вводить код ручками в редакторе Visual Basic. Полноценные макросы рекордером не пишутся как в эксель перенести слово в одной ячейке
как в эксель перенести слово в одной ячейке
Anastasia90
28.01.2014 11:49:35
Это какой от определенный код? Я могу этот код вставить в "тело" макроса? как в эксель перенести слово в одной ячейке Спасибо
как в эксель перенести слово в одной ячейке
Николай Павлов
28.01.2014 12:43:23
Нет, это не какая-то "волшебная команда". Это код, написанный по определенным принципам и правилам, которые гарантируют его работу с любым диапазоном на любом листе. Грамотное программирование, если хотите.
как в эксель перенести слово в одной ячейке
Anastasia90
28.01.2014 12:56:55
Спасибо)
как в эксель перенести слово в одной ячейке
Eva
20.02.2014 01:10:26
Здравствуйте! Подскажите, пожалуйста, как создать такой макрос: выбирается наибольшее целое число из нескольких предлагаемых.  
как в эксель перенести слово в одной ячейке
Дмитрий Якушев
21.02.2014 19:16:46
а зачем макрос? с помощью условного форматирования можно "подсветить"
вот здесь всё написано: http://www.planetaexcel.ru/techniques/9/70/
как в эксель перенести слово в одной ячейке
Николай Павлов
22.02.2014 09:46:57
А почему бы не использовать обычную функцию =МАКС(A1:A10), например?
как в эксель перенести слово в одной ячейке
Eva
24.02.2014 22:46:02
Спасибо, но мне нужен именно программный код, помогите, пожалуйста.
как в эксель перенести слово в одной ячейке
Николай Павлов
25.02.2014 07:52:45
Чтобы писать программный код нужно видеть файл и нормальное ТЗ. Что значит "предлагаемых"? Как предлагаемых? Через диалоговые окна или с листа нужно брать числа из ячеек? А может из массива? Сформулируйте задачу, приложите файл с примером и создайте тему на форуме - постараемся помочь. Здесь в комментариях такие вещи не решаются.
как в эксель перенести слово в одной ячейке
Eva
25.02.2014 22:17:42
Спасибо.
как в эксель перенести слово в одной ячейке
Gor Badamyan
27.03.2014 15:43:28
Пожалуйста помогите, как делать чтобы макрос был во всех книгах, а не только сохраненном книге. создал новую функцию но оно только в сохраненном книге.
как в эксель перенести слово в одной ячейке
easy.
09.04.2014 13:12:02
Подскажите пожалуйста будьте так добры, у меня есть combobox и вот его функция
Private Sub ComboBox1_Change()
Let Prices = Array(3000, 3500, 4000, 4500)
ComboBox1.List = Array("Матовый", "Глянец", "Металлик", "Перламутр")
Range("H15").Value = Prices(ComboBox1.ListIndex)
End Sub
что мне надо сделать чтобы не запускать его постоянно в VB при открытии документа, а что бы он делал это сам автоматически.

И еще вопрос можно ли как-то в поле со списком или в combobox вставить названия таблиц, и при выборе определенного названия в определенном диапазоне открывалась нужная таблица?
Спасибо.
как в эксель перенести слово в одной ячейке
Андрей Чернухин
22.04.2014 16:25:50
Добрый день. Подскажите пожалуйста книгу или ресурс для изучения макросов "с нуля", так сказать, для совсем пустых чайников в этом деле. как в эксель перенести слово в одной ячейке

Спасибо.
как в эксель перенести слово в одной ячейке
Николай Павлов
07.05.2014 12:15:38
Я учился по Джону Уокенбаху "Программирование на VBA в Excel". Очень хорошая книжка.
как в эксель перенести слово в одной ячейке
Андрей Чернухин
16.05.2014 17:41:22
Спасибо.
как в эксель перенести слово в одной ячейке
Allex
29.04.2014 10:56:02
Подскажите пожалуйста. Есть книга1 и книга2, как создать макрос делающий новый лист с нужным именем (желательно сегодняшней датой) в книге2 ? или просто скопировать лист из книги1 в книгу2 с тем же именем?
как в эксель перенести слово в одной ячейке
Николай Павлов
07.05.2014 12:17:32
Как-то так будет:
  set newsheet = Workbooks("Книга2").Worksheets.Add  newsheet.Name = Date  
как в эксель перенести слово в одной ячейке
Георгий
10.09.2014 11:51:45
Правой кнопкой мыши по нужному листу в Книге1, выбрать меню "Переместить или скопировать", в открывшемся окошке выбираем книгу2 (она должна быть открыта), выбираем место между листами (копируется перед выбранным листом) или выбираем "переместить в конец", и не забываем ставить галочку "создать копию".

То же для группы листов, с зажатой клавишей shift выбираем несколько листов, той же процедурой перемещаем их копии в другую книгу (или создаем дублирующие копии в этой книге, если необходимо[к названиям листов при этом добавится " (2,3 и т.д)"]). Один нюанс: в некоторых версиях excel, после завершения операции, чтобы работать с исходными листами (которые выделены в группу), необходимо щелкнуть правой кнопкой мыши по группе и в контекстном меню выбрать "Разгруппировать". И еще один нюанс, если на листах есть "умные таблицы" то группу с этими листами excel не даст скопировать/переместить. Хотя один лист с таблицей переносит
как в эксель перенести слово в одной ячейке
Oleg-207
18.05.2014 20:35:09
Подскажите пожалуйста макрос.Необходимо копировать значения из выделенного диапазона ячеек с листа А в лист В. Последующие копирования вставляются на лист В со смещением вниз.Спасибо.
как в эксель перенести слово в одной ячейке
Денис
29.07.2014 17:55:29
Здравствуйте Николай!
Записал макрос для форматирования выделенного диапазона, как таблицы:

Sub ТабличноеФорматирование()  '  ' ТабличноеФорматирование Макрос  ' Табличное форматирование  '  ' Сочетание клавиш: Ctrl+у  '      ActiveSheet.ListObjects.Add(xlSrcRange, Range("$D$16:$E$18"), , xlNo).Name = _          "Таблица1"      Range("D16:E19").Select      ActiveSheet.ListObjects("Таблица1").TableStyle = "TableStyleLight8"  End Sub

Но выделяется постоянно один диапазон. Что подставить за место

Range("$D$16:$E$18")  Range("D16:E19").Select
Чтобы форматирование применялось к выделенным ячейкам?
как в эксель перенести слово в одной ячейке
Malvina Malvina
13.08.2014 14:09:48
Добрый день!
Я никогда не пользовалась макросами, но при изучении начала вводить макросы , где есть примеры через Выпадающий список выбрать имена.
У меня получилось. но когда в этом же листе я внесла другой макрос, чтобы в других ячейках у меня через запятую выдавались данные из выпадающего списка , то у меня два макроса не понимает программа.
Может дело в одинаковом названии макроса? Как быть?
спасибо
как в эксель перенести слово в одной ячейке
uppl
01.02.2015 23:35:35
Добрый вечер, Николай. Прежде всего спасибо Вам за огромный кусок работы, который Вы проделываете, тем самым НЕОЦЕНИМО помогая пользователям.
Прошу Вас и других участников форума помочь решить задачку.
Мне ежедневно приходиться распечатывать из одного файла инфо с нескольких листов. Каждый раз разных...
Я задумался над тем, что идеально было бы создать макрос, который автоматически распечатывал бы необходимые листы. Признак простой - листы со значениями должны выходить на печать. Проблема в том, что в макросах я не силён...
Буду благодарен за любую помощь как в эксель перенести слово в одной ячейке
как в эксель перенести слово в одной ячейке
Николай Павлов
02.02.2015 07:19:38
Самый простой вариант - зайти на Форум и вежливо попросить о помощи (только правила перед этим почитайте). Возможно там 5 строк кода и нужно.
Самый быстрый вариант - повторить то же самое в ветке Работа, озвучив ваш возможный бюджет. Возможно уложитесь по деньгам в стоимость одного обеда.
И, наконец, самый лучший вариант - попробовать записать макрос рекордером или почитать книжку или прийти на тренинг по программированию на VBA как в эксель перенести слово в одной ячейке

А "листы со значениями" - это с какими? И в каких ячейках?
как в эксель перенести слово в одной ячейке
uppl
03.02.2015 16:35:30
Добрый день, Николай.
Предложенные Вами варианты обязательно возьму на воружение как в эксель перенести слово в одной ячейке В ближайшем будущем как в эксель перенести слово в одной ячейке

Листы со значениями - имеется ввиду, что в книге Хсель имеется несколько листов:
один основной, с данными из которого цифровые значения распределяются в определенные печатные формы (на других листах)
И вот этих печатных форм, например 10 (листов), а необходимо напечатать 5 листов. Признак - итоговое поле в которых больше нуля...
Что скажете? Точнее подскажете?
 
как в эксель перенести слово в одной ячейке
Khachatryan Armen
20.02.2015 16:04:01
Извините, что делать, чтобы например если ячейка а1=1, включить макрос1, в противном случае макрос2
как в эксель перенести слово в одной ячейке
Дмитрий Андреев
05.03.2015 11:52:19
Интересно, а можно ли сделать так, чтобы при вызове моей функции в окошке были описания самой функции и ее аргументов (так же как это выводится при выборе стандартных функций)?
как в эксель перенести слово в одной ячейке
holpa holpa.ru
03.04.2015 17:07:45
Спасибо все работает. У вас нет тем для outlook?
В основном интересует vbs
как в эксель перенести слово в одной ячейке
Armen Khachatryan
22.04.2015 08:40:54
Добрый день, Николай. Eсть способ запретить копирование книги excel?
как в эксель перенести слово в одной ячейке
Алексей
30.06.2015 16:57:27
Добрый день, Николай! просветите пожалуйста в вопросе переноса данных из интернета в книгу.
В частности нужно перенести всего одну цифру (она находиться между кнопками "call" и "put") со страницы http://www.dragonoptions.com/ в любую ячейку на странице.
В идеале нужно чтоб добавлялись числа с сайта в столбик (со временем добавления)  периодикой в 5 секунд.
В поле, на сайте, число постоянно меняется, макрос наверно потом постараюсь воткнуть на кнопку, чтоб можно было останавливать и запускать сбор данных.
Понимаю что задачка сложная буду рад любой помощи в реализации.
как в эксель перенести слово в одной ячейке
TC_TRUST
26.08.2015 02:35:26
Здравствуйте,

Подскажите, пожалуйста, как назначить кнопке в документе одну из функций plex?

Спасибо.
как в эксель перенести слово в одной ячейке
Evgeniy Consultant
08.09.2015 15:17:56
Николай, добрый день. Подскажите. какая на Ваш взгляд наиболее полезная литература с точки зрения объема знаний (для прогнозной аналитики) и временных затрат (Уолкенбах отпадает).
Спасибо!
как в эксель перенести слово в одной ячейке
Александр Марчаковский
22.09.2015 17:03:30
Уважаемый Николай! Не смог найти как написать программку, чтобы определенное слово выделялось красным цветом.
Например, есть "ОПЛАЧЕНО" и "НЕ ОПЛАЧЕНО", если в ячейке появилось "Не оплачено" - изменить цвет на красный.
В большей степени речь ведется о числах, а о работе с текстом в макросах не нашел. Помогите, пожалуйста.
как в эксель перенести слово в одной ячейке
Сергей Гончаров
25.09.2015 13:37:18
Александр, Вам поможет условное форматирование: выделить колонку (или диапазон), в которых отмечается оплата, нажать кн. Условное форматирование - содать правило - форматировать только ячейки, которые содержат... и изменить правило: текст - содержит - не оплачено. Задать формат (заливка красным) и 2 раза щелкнуть ОК.
как в эксель перенести слово в одной ячейке
Александр Марчаковский
28.09.2015 18:45:40
Большое спасибо,Сергей!
как в эксель перенести слово в одной ячейке
Александр Пахомов
02.10.2015 16:23:11
Добрый день, Николай! Подскажите пожалуйста : возможно ли сделать несколько результатов работы одной пользовательской функции? Например есть книга с сотрудниками и книга с доверенностями. Хотел сделать макрос, при использовании которого он считывает фамилию, переходит на книгу с сотрудниками и берет оттуда нужные сведения, но не смог вывести с функции больше одного значения (макросами стал интересоваться недавно). Буду благодарен за любую помощь)
как в эксель перенести слово в одной ячейке
Татьяна Гугенотова
30.01.2016 08:36:29
Доброго дня, Николай!
Для начала хочу Вам сказать огромное спасибо за этот сайт! Благодаря  многим Вашим статьям я смогла выполнять свою работу более профессионально и заслужила особое уважение среди сотрудников.
Теперь вопрос))):
Очень часто приходиться сталкиваться с огромными таблицами, в которых нужно произвести расчет по формуле в определенном столбце (не буду зацикливаться по какой именно формуле, их в арсенале множество), а потом заменить значения формулы на текстовой. Я в таком случае записываю макрос макрорекордером, на применение определенной формулы, например, с помощью ВПР необходимо подставить цены из определенного Прайса, потом протягиваю полученный результат по всему столбцу, а затем уже выделяю весь столбец и применяю макрос замены на текстовое значение. Можно все это как-то упразднить? То есть, я выделяю диапазон столбца таблицы (нужно чтобы в макросе было прописано не указанный диапазон, а именно выделяемый), и в диапазоне выделяемого столбца в каждой ячейке столбца произошло вычисление, а потом замена всех полученных результатов на тестовое значение. Для меня это важно, так как таблицы одинаковой формы, но разное количество строк. Можно ли будет сделать так, чтобы макрос был один, а нем я могла только менять формулу?
Заранее благодарю и приятных выходных!  
как в эксель перенести слово в одной ячейке
Владимир Якушев
02.02.2016 08:08:08
Николай, у меня такой вопрос. Можно ли сохранить на он-лайн диске лист эксель или его выделенный фрагмент так, чтобы в нем работали присвоенные кнопкам гиперссылки и макросы, работали элементы управления ?   
как в эксель перенести слово в одной ячейке
Роман Казаков
18.02.2016 14:47:52
Добрый день!
Есть вот такая длинная формула она преобразует дату из кривого формата в нормальный. Хотел бы сделать из нее меньше формулу через VBA, но ума не хватает пока. Помогите
=СЦЕПИТЬ(ПРАВСИМВ(D2;2);".";ЛЕВСИМВ(ПРАВСИМВ(D2;4);2);".";ЛЕВСИМВ(D2;4))
как в эксель перенести слово в одной ячейке
Иман Абишев
18.05.2016 09:21:04
Доброго дня!! Не подскажете где в 2010офисе личная книга макросов??
как в эксель перенести слово в одной ячейке
Евгений Иванов
28.07.2016 13:43:42
Добрый день!  Сделал целый комплекс но напоролся на проблему: на моем компе на котором я все делал работают все макросы отлично, на других компах все кнопки которые исполняют макросы записанные макрорекодером работают , все кнопки ActiveX не работают ни у кого кроме меня. Как решить данную проблему?
Офис 2007, макросы с макрорекодера в модулях сохранены в самом файле, макросы которые к кнопках актива в листах.
как в эксель перенести слово в одной ячейке
Татьяна Кузнецова
16.08.2016 17:45:12
Николай, добрый день!
Только начинаю знакомиться с VBA, могли бы вы рассказать, как все-таки подружить макросы с умными таблицами?
Если более конкретно, то интересует автосортировка, в диапазоне все работает, как только подключаешь умную таблицу, макрос теряется((
Как правильно задавать диапазон умной таблицы?

Спасибо!!
как в эксель перенести слово в одной ячейке
Mel Anch
28.09.2016 12:40:11
В Excel 2010 пытался сделать пользовательскую функцию NDS как в примере выше. При вставке функции в ячейку через мастер функций пишет "У данной функции нет аргументов". Пытался прописать аргумент вручную - пишет ошибку #ИМЯ?. Убрал аргумент в описании функции - просто хотел вернуть число. Все равно та же ошибка #ИМЯ?. Функцию вставляет в формулу в виде =МояКнига.xlsm!Module1.NDS(). Не пойму, в чем проблема.

P.S.
Похоже, что проблема в файле (я не в новый файл, а в существующий пытался функцию прописать).
Попробовал на другом компьютере в новом файле - всё нормально работает... До поры. При следующем открытии опять косяки.
как в эксель перенести слово в одной ячейке
Анастасия Алфимова
02.09.2017 20:37:34
Добрый день, у меня такая же проблема! При попытке повторить пример в Excel 2010, вместо значения выходит ошибка  #ИМЯ? Плюс  в Мастер функций отражается не название функции, а целый адрес (подобный выше упомянутому =МояКнига.xlsm!Module1.NDS()).
Подскажите, пожалуйста, почему так происходит?
Заранее спасибо.
как в эксель перенести слово в одной ячейке
Елена Шишкина
17.10.2016 10:31:33
Добрый день! я с макросами знакомлюсь пару дней) мне нужно написать формулу 0,0003*х^3-0.0262*x^2+1.8327*x. Но у меня почему то ошибку выдает. С более простыми формулами все получилось. Может быть Вы мне подскажите в чем дело)) заранее благодарю)
как в эксель перенести слово в одной ячейке
Вячеслав Стати
07.02.2017 21:55:12
Здравствуйте, подскажите пожалуйста есть ли какой-то каталог с командами для написания макроса. Никогда не сталкивался и понятия не имею какие правила и методы есть для написания макроса.
как в эксель перенести слово в одной ячейке
Adriano
09.04.2017 19:05:50
Добрый день!
Подскажите, пожалуйста, как написать макрос, чтобы автоматически делал авто сумму с округлением до 2-х значений после запятой в одной ячейке, в следующей ячейке, нижней, выделял сумму НДС и в следующей ячейке, нижней, считал итог (сумма+НДС).
как в эксель перенести слово в одной ячейке
Иброхим Кодиров
04.05.2017 16:19:36
Здравствуйте! Николай помогите пожалуйста у меня нет в списке "определенные пользователем". Откуда найти мне это?
как в эксель перенести слово в одной ячейке
Иброхим Кодиров
04.05.2017 16:28:37
Все спасибо исправил
как в эксель перенести слово в одной ячейке
ксения Александрова
11.05.2017 16:39:28
Здравствуйте, подскажите пожалуйста, как записать макрос пересчитывающий значение в столбце таблицы?
как в эксель перенести слово в одной ячейке
Алексей Супранович
07.06.2017 19:16:32
Добрый день, Николай!

Помогите написать макрос, сортирующий по возрастанию в строке числа в выделенных ячейках
как в эксель перенести слово в одной ячейке
Дмитрий Якушев
22.07.2017 22:49:20
Вот бы ещё материалов по макросам)
как в эксель перенести слово в одной ячейке
Дмитрий Федоренко
10.11.2017 11:33:12
Добрый день, Николай!
После записи макроса NDS, в мастере функций не отобразилась новая категория "определенные пользователем". Подскажите что делать? Где искать?
как в эксель перенести слово в одной ячейке
Zoya Rusakova
23.11.2017 01:21:30
Здравствуйте, у меня вопрос неземной наверное)) приложу картинку чтоб понятнее было))  как в эксель перенести слово в одной ячейке
как в эксель перенести слово в одной ячейке
Николай Павлов
23.11.2017 10:52:21
Зоя, гляньте вот эту статью про накопление нарастающим итогом
Страницы: 1  2  


Комментарии

В Excel. Формат ячеек "переносить по словам"
=ПСТР (A28;НАЙТИ (" ";A28;1)+1;1)&amp;". "&amp;ПСТР (A28;НАЙТИ (" ";A28;НАЙТИ (" ";A28;1)+1)+1;1)&amp;". "&amp;ЛЕВСИМВ (A28;НАЙТИ (" ";A28;1)-1) Пробелы перед открывающими скобками удалить. Это mail вставляет. Вместо А28...
Для решения ваших задач требуется использовать vba vba нужен просто в интернете найди и забей на шеолу
выделяешь слово, копируешь, вставляешь копируй и вставляй - проблем нет. или ты неверно сформулировала вопрос Выделяешь текст в Word =====> CTRL + H =====> Заменить "ПРОБЕЛ" на "^p" =====> Копировать N строк в Word =====>...
2^50=100..00 ( всего 50 нулей). Какой перебор? Берёте 0 и 1. Спереди у обоих дописываете сначала 0, потом 1. Повторяете процедуру нужное количество раз. Честно говоря, не могу представить себе задачу, в которой требуется готовая таблица...

Новости по теме

This RSS feed URL is deprecated
http://moydrygpk.ru/ Текст в ячейке выходит далеко за её пределы, и вы не знаете, как разместить его только в одной.... Читать далее..

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

Видео
Из Вконтакте