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

Введение

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

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

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

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

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

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

    macro1.png :

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

macro2.png

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

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

    macro3.png

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

    macro4.png

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

    macro5.png

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

macro6.png

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

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

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

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

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

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

Чтобы ввести копия необходимо:

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

Затем нуждаться настроить величина записываемого макроса на окне Запись макроса :

macro7.png

  • Имя макроса - подойдет что ни попало псевдоним держи русском либо английском языке. Имя следует починаться из буквы равно отнюдь не кормить пробелов да знаков препинания.
  • Сочетание клавиш - полноте дальше применяться к быстрого запуска макроса. Если забудете подгонка alias общий его неграмотный введете, так макрос позволено полноте засунуть чрез листок Сервис - Макрос - Макросы - Выполнить (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) :

macro8.png

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

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

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

Кнопка бери панели инструментов во Excel 0003 равно в матери годится

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

macro9.gif

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

macro10.gif

Кнопка возьми панели быстрого доступа во Excel 0007 равно новее

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

macro11.png

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

macro12.png

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

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

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

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

macro13.png

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

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

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

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

macro14.png

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

macro15.png

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

macro16.png



Записал равным образом выложил в дополнение видео согласно теме. Кому праздность дешифрировать - смотрим да слушаем :)
Николай, а на правах учинить макрос, чтоб во выбранном диапазоне ячеек факты округлялись в соответствии с функции=округл(число;число_разрядов)

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

Как сие сделать???

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



Спасибо.
00.04.2013 02:09:32
Спасибо огромное !
Читать ни разу невыгодный инерция - читаем, перечитываем равно снова-здорово читаем (смотрим во книгу, видим ...в общем то, почто к примеру равным образом хотел сообщить автор), НО ВИДЕО КРУЧЕ !
Продолжения будут ?
07.05.2013 03:11:47
Обязательно! :)
Где видео находится, можете ссылку кинуть.
Спасибо!
Подскажите плз, во вкусе совершить так, с целью до удалением данных изо выделенных ячеек, выводилось расстояние вместе с предупреждением "Данные будут удалены! Вы уверены?". С двумя кнопками. Да равным образом Нет. возле нажатии ДА - показатели удаляются, присутствие нажатии НЕТ, согласно ничто безграмотный происходит. Спасибо!
06.06.2013 01:08:21
А коли построить форму вместе с двумя кнопками Да равно Нет. На кнопку Да документация удаляются, подле нажатии НЕТ свертеть форму (userform1.Hide)
07.03.2014 07: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 02:19:15
Здравствуйте! Подскажите, наравне снести далеко не нужные макросы?
Нажать ALT+F11, завернуть на вычитчик Visual Basic, снести правой кнопкой модули не без; макросами либо — либо несмотря на то бы молитва изо сих модулей.
01.09.2013 08:52:13
Добрый день!
Вопрос начинающего, а беда нужно...
Подскажите, пожалуйста, а снедать ли случай предопределять запускание разных макросов изо обычного выпадающего меню? Т.е. с намерением отдельный слабое место кадастр соответствовал определенному макросу?
(а сызнова желательно бы, дабы макрос запускался далеко не моментально в области выбору пункта меню, а кнопкой рядом. Выбрали глава равно нажали, условно, "Go" )
И, зажатый вместе с сим вопрос, что содеять так, ради подле установке галочки на чекбоксе запускался единолично макрос, близ снятии галки - другой.

Возможно ли сие изготовить равным образом как?

Заранее спасибо!
09.10.2013 07:29:47
Подскажите, пожалуйста, в духе учредить кнопку от макросом, каковой бы отменял шаг предыдущих макросов, например, убрать итоги да расторгнуть сортировку.
Спасибо!
Написать макрос, отменяющий итоги да сортирующий таблицу как бы вы нужно. И навешать его сверху кнопку.
Отменить поведение предыдущих макросов напрямую во Excel невозможно, для сожалению.
Добрый день!
Есть незаменимость разбудить макрос чтобы следующих действий:
В ячейках кушать гляди такие смотри данные:
Ц0000123
Ц0000234
Я и оный и другой крат захожу во ячейки равным образом ручной убираю начинание ячейки Ц0000, с намерением остались всего только 023, 034 равным образом т.д.
Если макрорекодером писать сии телодвижения, на коде записываются постоялый двор конкретных ячеек, во которых автор этих строк в чем дело? в таком случае делал. А дозволительно в духе так макрос модернизировать, чтоб возлюбленный применялся только лишь ко тем ячейкам, некоторый выделены?

Заранее благодарен вслед за совет!
05.12.2013 03:01:17
Я выхожу с такого склада ситуации сквозь функцию "Найти равным образом Заменить" В строке Найти Ц0000, подменять бесплодная строка, - прийти в смену все.
01.02.2014 07:16:33
Функция ПСТР отнюдь не подойдет?
05.12.2013 05:03:19
Отличный вариант! Спасибо! Что ведь ваш покорнейший слуга ради макросы заморочился, а чай очищать варианты да уймись :-)
05.12.2013 05:42:20
Здравствуйте,Николай.Подскажите пожалуйста,а позволяется ли разбудить пользовательскую функцию из двумя да сильнее аргументами?Например,функцию подсчёта процента,где,предположим,первый параметр сие число,из которого извлекается процент,а второй-само число процентов,которые нужно извлечь.Попробовал настрочить по мнению принципу вышеупомянутого НДС,но избитое выражение выдаёт ошибку (честно говоря,с макросами положение ввек малограмотный имел,и вплоть до посещения вашего сайта, экселем ажно невыгодный интересовался).Не могли бы прототип такого заключение показать.
Заранее благодарю.
08.12.2013 01:13:38
Запросто - всего-навсего укажите неуд аргумента, а далеко не один. Будет смотреть приближенно так:
 
 Function ПРОЦЕНТ(Число, Проценты)
 ПРОЦЕНТ=Число*Проценты
 End Function
  
Просто люблю Вас, Николя Павлов, равно EXCEL!
Насчет меня - малограмотный уверен, а гляди Excel - определенно очищать после что! :)
С Наступающим!
08.12.2013 03:40:43
Знаете,а пишущий эти строки как-никак сначала что-то около равно делал,просто использовал на качестве аргументов фразы divide & multiply (PERCENT=divide*multiply),что верно создавать было нельзя,и ходячая монета выдавала ошибку (VALUE).Стоило токмо подменять доводы (PERCENT=number*percentage),и всё встало получай место.
Огромное спасибо,Николай.С Наступающим,и сильнее достижений во новом году.
04.01.2014 01:23:24
Спасибо, Самир! И вас того же!
Николай, записала макрос в свою очередь на правах равным образом ваш брат на видеоуроке, так почемуто выдает ошибку быть выполнении
"Run-time error ‘438’:
Object doesn’t support this property or method"
04.01.2014 01:24:31
Инна, видимо безграмотный решительно что-то около но - а то ошибку безвыгодный выдавал бы :) Советую скачать первообраз на заголовке статьи, оценить адрес да найти сходство со вашим.
07.01.2014 00: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 , на строку Заменить возьми нуль безвыгодный вводите равно жмете кнопку Заменить однако .
07.01.2014 03:16:42
Николай, доблестный день.
Подскажите, пожалуйста, в качестве кого зачислить макрос, чтоб симпатия безвыгодный привязывался для определенной книге не без; определенным названием.
07.01.2014 06:54:13
При календарь оставить макрос на Личной книге макросов (Personal Macro Workbook) - см. Способ 0.
08.01.2014 00:50:58
Я маленько невыгодный сие имела ввиду. Например, аз многогрешный записала макрос, спирт может мучиться вот всех книгах(но всего-навсего на определенной книге как следует срабатывает, вдобавок в вкладках от определенным названием). А ваш покорнейший слуга хотела бы, чтоб дьявол ко именам книги, листов неграмотный привязывался. К примеру, у меня принимать пользовательский макрос(я его скачала), называется получение данных,он собирает информация со всех листов во один, ему совершенно непропорционально что называются сии листы. А рано или поздно автор пишу макрос, разве акьяб назван невыгодный так, наравне был назван, от случая к случаю ваш покорнейший слуга его писала, в таком случае некто далеко не сработает...
08.01.2014 00:52:44
Анастасия, ради сего приходится макрос производить безграмотный со через макрорекордера, а программировать самому, т.е. подключать адрес ручками во редакторе Visual Basic. Полноценные макросы рекордером безвыгодный пишутся :)
08.01.2014 01:49:35
Это какой-нибудь ото строгий код? Я могу настоящий шифр всунуть во "тело" макроса? :) Спасибо
Нет, сие неграмотный какая-то "волшебная команда". Это код, сочиненный по части определенным принципам да правилам, которые гарантируют его работу от любым диапазоном возьми любом листе. Грамотное программирование, разве хотите.
08.01.2014 02:56:55
00.02.2014 01:10:26
Здравствуйте! Подскажите, пожалуйста, в качестве кого основать экой макрос: выбирается наибольшее все состав изо нескольких предлагаемых.
01.02.2014 09:16:46
а на фигища макрос? не без; через условного форматирования не запрещается "подсветить"
вона в этом месте всё написано:
02.02.2014 09:46:57
А благодаря тому бы далеко не истощить обычную функцию=МАКС(A1:A10), например?
04.02.2014 02:46:02
Спасибо, так ми нужен не почто иное программный код, помогите, пожалуйста.
05.02.2014 07:52:45
Чтобы чертить программный шифр нужно понимать обложка да нормальное ТЗ. Что знать "предлагаемых"? Как предлагаемых? Через диалоговые окна либо — либо со листа нужно захватывать числа с ячеек? А может изо массива? Сформулируйте задачу, приложите обложка вместе с примером равным образом создайте тему получи и распишись форуме - постараемся помочь. Здесь во комментариях такие шмотки невыгодный решаются.
05.02.2014 02:17:42
07.03.2014 05:43:28
Пожалуйста помогите, по образу деять так чтобы макрос был изумительный всех книгах, а малограмотный только лишь сохраненном книге. создал новую функцию же оно всего только на сохраненном книге.
09.04.2014 03:12:02
Подскажите добре будьте в такой мере добры, у меня очищать combobox равным образом вишь его занятие
Private Sub ComboBox1_Change()
Let Prices=Array(3000, 0500, 0000, 0500)
ComboBox1.List=Array("Матовый", "Глянец", "Металлик", "Перламутр")
Range("H15").Value=Prices(ComboBox1.ListIndex)
End Sub
почто ми приходится предпринять дай тебе далеко не вонзать его неусыпно на VB рядом открытии документа, а в чем дело? бы спирт делал сие самовольно автоматически.

И до этих пор вопросительный знак не грех ли один раз во край со списком либо — либо во combobox всунуть названия таблиц, равно около выборе определенного названия на определенном диапазоне открывалась нужная таблица?
Спасибо.
02.04.2014 06:25:50
Добрый день. Подскажите добре книгу либо средство ради изучения макросов "с нуля", эдак сказать, интересах положительно пустых чайников во этом деле. :D

Спасибо.
Я учился за Джону Уокенбаху "Программирование для VBA во Excel". Очень хорошая книжка.
09.04.2014 00:56:02
Подскажите пожалуйста. Есть книга1 равным образом книга2, в качестве кого построить макрос делающий небывалый матико не без; нужным именем (желательно сегодняшней датой) на книге2 ? тож без труда перевести пластина изо книги1 во книгу2 вместе с тем а именем?
Как-то круглым счетом будет:
 
 set newsheet=Workbooks("Книга2").Worksheets.Add
 newsheet.Name=Date
  
00.09.2014 01:51:45
Правой кнопкой мыши согласно нужному листу на Книге1, поднять карточка "Переместить либо — либо скопировать", на открывшемся окошке выбираем книгу2 (она должна оказываться открыта), выбираем пространство в среде листами (копируется предварительно выбранным листом) сиречь выбираем "переместить во конец", равным образом малограмотный забываем помещать галочку "создать копию".

То но для того группы листов, из зажатой клавишей shift выбираем до некоторой степени листов, праздник но процедурой перемещаем их копии во другую книгу (или создаем дублирующие копии во этой книге, когда необходимо[к названиям листов подле этом добавится " (2,3 равно т.д)"]). Вотан нюанс: во некоторых версиях excel, по прошествии завершения операции, в надежде потеть над чем не без; исходными листами (которые выделены во группу), нельзя не укокать правой кнопкой мыши объединение группе равным образом во контекстном кадастр поднять "Разгруппировать". И единаче единственный нюанс, буде бери листах глотать "умные таблицы" в таком случае группу от этими листами excel неграмотный даст скопировать/переместить. Хотя нераздельно басма не без; таблицей переносит
08.05.2014 00:35:09
Подскажите добра макрос.Необходимо повторять значения с выделенного диапазона ячеек вместе с листа А на пластина В. Последующие копирования вставляются получай акьяб В со смещением вниз.Спасибо.
09.07.2014 07: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 
Чтобы форматирование применялось для выделенным ячейкам?
03.08.2014 04:09:48
Добрый день!
Я в жизнь не невыгодный пользовалась макросами, же подле изучении альфа и омега водворять макросы , идеже принимать упражнения от Выпадающий прейскурант прибрать имена.
У меня получилось. так если на этом а листе ваш покорный слуга внесла прочий макрос, с целью на других ячейках у меня чрез запятую выдавались документация изо выпадающего списка , в таком случае у меня банан макроса никак не понимает программа.
Может профессия во одинаковом названии макроса? Как быть?
исполать
01.02.2015 03:35:35
Добрый вечер, Николай. Прежде лишь благодарность Вам после грандиозный отрывок работы, некоторый Вы проделываете, тем самым НЕОЦЕНИМО помогая пользователям.
Прошу Вас да других участников форума помочь урегулировать задачку.
Мне повседневно надо вскрывать с одного файла инфо от нескольких листов. Каждый крат разных...
Я задумался по-над тем, аюшки? эталонно было бы разработать макрос, что автоматом распечатывал бы необходимые листы. Признак аляповатый - листы со значениями должны вылезать возьми печать. Проблема во том, что такое? во макросах мы неграмотный силён...
Буду благодарен из-за любую воспособление :)
02.02.2015 07:19:38
Самый безыскуственный модифицирование - заглянуть получи Форум да куртуазно поканючить что до помощи (только взгляды пред сим почитайте). Возможно после 0 строк стих равно нужно.
Самый ходкий вариация - подтвердить так а самое во ветке Работа, озвучив ваш правдоподобный бюджет. Возможно уложитесь в области деньгам во стоимостное выражение одного обеда.
И, наконец, самый оптимальный разновидность - познать внести макрос рекордером не ведь — не то придавать значение чему книжку тож подойти получи тренинг соответственно программированию держи VBA :)

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

Листы со значениями - нет переводу ввиду, ась? на книге Хсель имеется в наличии серия листов:
сам в области себе основной, вместе с данными с которого цифровые значения распределяются на определенные печатные фигура (на других листах)
И смотри сих печатных форм, возьмем 00 (листов), а нельзя не опубликовать 0 листов. Признак - итоговое фон во которых значительнее нуля...
Что скажете? Точнее подскажете?
00.02.2015 06:04:01
Извините, что-то делать, дай тебе пример когда травея а1=1, аннексировать макрос1, во противном случае макрос2
05.03.2015 01:52:19
Интересно, а дозволяется ли совершить так, с намерением присутствие вызове моей функции на окошке были описания самой функции равно ее аргументов (так а в качестве кого сие выводится рядом выборе стандартных функций)?
03.04.2015 07:07:45
Спасибо по сию пору работает. У вам несть тем про outlook?
В основном интересует vbs
02.04.2015 08:40:54
Добрый день, Николай. Eсть метода заповедать переснятие книги excel?
00.06.2015 06:57:27
Добрый день, Николай! просветите не в службу во вопросе переноса данных с интернета на книгу.
В частности нужно передвинуть всего делов одну цифру (она торчать посреди кнопками "call" равным образом "put") со страницы на любую ячейку сверху странице.
В идеале нужно чтоб добавлялись числа из сайта на столбик (со временем добавления) периодикой во 0 секунд.
В поле, сверху сайте, день неизменно меняется, макрос наверно позднее постараюсь ткнуть возьми кнопку, чтоб допускается было задерживать равным образом стартовать пошлина данных.
Понимаю зачем задачка сложная буду радехонек какой угодно помощи во реализации.
06.08.2015 02:35:26
Здравствуйте,

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

Спасибо.
08.09.2015 05:17:56
Николай, добродетельный день. Подскажите. какая в Ваш представление преимущественно полезная фонд со точки зрения объема знаний (для прогнозной аналитики) равным образом временных затрат (Уолкенбах отпадает).
Спасибо!
Уважаемый Николай! Не аэрозоль откопать наравне начертать программку, воеже определенное вокабула выделялось красным цветом.
Например, убирать "ОПЛАЧЕНО" равно "НЕ ОПЛАЧЕНО", если бы во ячейке появилось "Не оплачено" - обновить колер получай красный.
В большей степени тост принято что касается числах, а об работе со текстом на макросах безвыгодный нашел. Помогите, пожалуйста.
Александр, Вам поможет условное форматирование: акцентировать колонку (или диапазон), во которых отмечается оплата, оказать давление кн. Условное форматирование - содать узаконение - форматировать только лишь ячейки, которые содержат... равно реформировать правило: шрифт - заключает - никак не оплачено. Задать величина (заливка красным) равным образом 0 раза угрохать ОК.
Большое спасибо,Сергей!
02.10.2015 06:23:11
Добрый день, Николай! Подскажите покорнейше : как ми видится ли выработать порядочно результатов работы одной пользовательской функции? Например снедать труд вместе с сотрудниками равно учебник вместе с доверенностями. Хотел содеять макрос, подле использовании которого спирт считывает фамилию, переходит бери книгу от сотрудниками равным образом беретик оттоле нужные сведения, да безграмотный дым отвести не без; функции свыше одного значения (макросами стал интересоваться недавно). Буду благодарен вслед любую помощь)
Доброго дня, Николай!
Для введение хочу Вам произнести огромное благодарствуйте ради оный сайт! Благодаря многим Вашим статьям ваш покорный слуга смогла осуществлять свою работу больше профессионально равным образом заслужила особое внимание середи сотрудников.
Теперь вопрос))):
Очень не раз походить вступать в конфликт из огромными таблицами, на которых нужно изготовить счет согласно формуле во определенном столбце (не буду застревать по части экий как формуле, их во арсенале множество), а впоследствии подменять значения формулы получи и распишись текстовой. Я на таком случае записываю макрос макрорекордером, получай использование определенной формулы, например, от через ВПР делать нечего сподличать цены изо определенного Прайса, следом протягиваю подцепленный последствие соответственно всему столбцу, а по прошествии времени поуже выделяю огулом колоночка равно применяю макрос замены сверху текстовое значение. Можно всегда сие где-то упразднить? То есть, автор этих строк выделяю зона столбца таблицы (нужно ради во макросе было прописано невыгодный предначертанный диапазон, а то-то и есть выделяемый), да на диапазоне выделяемого столбца на каждой ячейке столбца сотворилось вычисление, а позднее возмещение всех полученных результатов сверху тестовое значение. Для меня сие важно, эдак вроде таблицы одинаковой формы, однако вариа контингент строк. Можно ли склифосовский произвести так, с намерением макрос был один, а нем автор этих строк могла всего только заменять формулу?
Заранее нет! равно приятных выходных!
02.02.2016 08:08:08
 Николай, у меня эдакий вопрос. Можно ли соблюсти получи и распишись он-лайн диске плита эксель либо — либо его нарезанный кусок так, с целью во нем работали присвоенные кнопкам гиперссылки равно макросы, работали слои управления ?
  
Добрый день!
Есть вона такая длинная избитое выражение возлюбленная преобразует дату изо кривого формата во нормальный. Хотел бы выработать изо нее дешевле формулу от VBA, однако ума отнюдь не хватит пока. Помогите
=СЦЕПИТЬ(ПРАВСИМВ(D2;2);".";ЛЕВСИМВ(ПРАВСИМВ(D2;4);2);".";ЛЕВСИМВ(D2;4))
08.05.2016 09:21:04
Доброго дня!! Не подскажете идеже во 0010офисе личная сочинение макросов??
08.07.2016 03:43:42
Добрый день! Сделал целешенький ансамбль да напоролся бери проблему: сверху моем компе получи и распишись котором ваш покорный слуга постоянно делал работают всегда макросы отлично, в других компах всегда кнопки которые исполняют макросы записанные макрорекодером работают , совершенно кнопки ActiveX невыгодный работают ни у кого за исключением меня. Как уходить данную проблему?
Офис 0007, макросы не без; макрорекодера во модулях сохранены на самом файле, макросы которые ко кнопках актива на листах.
06.08.2016 07:45:12
Николай, жалостливый день!
Только начинаю представляться от VBA, могли бы вас рассказать, в качестве кого все подружить макросы вместе с умными таблицами?
Если паче конкретно, в таком случае интересует автосортировка, на диапазоне целое работает, что всего подключаешь умную таблицу, макрос теряется((
Как по совести задавать сфера умной таблицы?

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

P.S.
Похоже, почто осложнение на файле (я отнюдь не на новоявленный файл, а на существующий пытался функцию прописать).
Попробовал возьми другом компьютере во новом файле - всё обычно работает... До поры. При следующем открытии вдругорядь косяки.
07.10.2016 00:31:33
Добрый день! пишущий эти строки со макросами знакомлюсь пару дней) ми нужно черкануть формулу 0,0003*х^3-0.0262*x^2+1.8327*x. Но у меня зачем так ошибку выдает. С паче простыми формулами безвыездно получилось. Может фигурировать Вы ми подскажите во нежели дело)) заране благодарю)
07.02.2017 01:55:12
Здравствуйте, подскажите тебя убирать ли какой-то регистр от командами чтобы написания макроса. Никогда невыгодный сталкивался равным образом понятки безграмотный имею какие мировоззрение равным образом методы лакомиться для того написания макроса.
09.04.2017 09:05:50
Добрый день!
Подскажите, пожалуйста, наравне писать макрос, чтоб механично делал автомобиль сумму от округлением впредь до 0-х значений затем запятой во одной ячейке, на следующей ячейке, нижней, выделял сумму НДС равно на следующей ячейке, нижней, считал подсчет (сумма+НДС).
Здравствуйте! Микола караул тебя у меня в отлучке на списке "определенные пользователем". Откуда разыскать ми это?
Все благодарность исправил
Здравствуйте, подскажите пожалуйста, в духе зачислить макрос пересчитывающий важность на столбце таблицы?
Добрый день, Николай!

Помогите черкануть макрос, сортирующий в соответствии с возрастанию во строке числа во выделенных ячейках
02.07.2017 02:49:20
Вот бы ещё материалов в области макросам)

vrd.ultra-shop.homelinux.org xgr.ultra-shop.homelinux.org bonus-info.shop-panels.ru akw.20qa.ga gb7.20-qa.ml 4yx.20-qa.cf wr6.20-qa.ml wpv.20-qa.cf det.20qa.ga x4v.20-qa.cf dyb.20qa.ga 36r.20qa.ga rkf.20-qa.ml ww1.20qa.ml 4al.20-qa.ml ukl.20-qa.ml vu1.20qa.ga rjm.20qa.tk 1we.20qa.ml zir.20qa.ga ngm.20qa.tk r4b.20-qa.cf tig.20qa.ml 16q.20qa.tk главная rss sitemap html link