ТэнтаклсБлад Пользователь Сообщений: 2 |
#1 08.05.2019 10:21:56 ехcel 2007. Сделал макрос с кнопкой для вычитания из ячейки:
Возникла необходимость применять данный макрос только к выделенным через клавишу Ctrl ячейкам для упрощения ведения (применять для активной ячейки по отдельности очень долго.) Диапазон значений столбца — В1:B18. Через Range сделать не получилось. Заранее благодарен! Изменено: ТэнтаклсБлад — 08.05.2019 11:36:11 |
||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
ТэнтаклсБлад, с вас файл-пример с 2мя листами «как есть» и «как надо» Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Alemox Пользователь Сообщений: 2183 |
#3 08.05.2019 10:48:00
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
||
Vladimir1336 Пользователь Сообщений: 8 |
#4 08.05.2019 11:17:57 Alemox, можно проще:
Изменено: Vladimir1336 — 08.05.2019 11:36:53 |
||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#5 08.05.2019 11:33:08 Alemox, Vladimir1336, ну вообще-то Selection=1 и Cells(r, c) = Cells(r, c) — 1 — не одно и тоже. Тогда уж:
Изменено: Jack Famous — 08.05.2019 11:33:55 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
Vladimir1336 Пользователь Сообщений: 8 |
#6 08.05.2019 11:37:49 Jack Famous,
Изменено: Vladimir1336 — 08.05.2019 13:32:26 |
||
Великолепно сработал вариант Alеmox’a! Спасибо всем за помощь! Изменено: ТэнтаклсБлад — 08.05.2019 11:40:57 |
|
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
Vladimir1336, ваш код преобразует Selection в нули (если были числа) Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#9 08.05.2019 11:46:42
Если на скрине — то, что вам нужно, тогда Vladimir1336 в #4 предложил вариант быстрее и короче. Но это не то, что вы описали в стартовом сообщении… Прикрепленные файлы
Изменено: Jack Famous — 08.05.2019 12:30:55 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
Jack Famous, в 365-м Excel’е он работает корректно. Я бы не написал его сюда, если бы он не сработал у меня. Изменено: Vladimir1336 — 08.05.2019 13:32:44 |
|
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
Vladimir1336, не верю. Работа такого простейшего кода не должна отличаться в разных версиях. Коды давно пишете? Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Jack Famous, я не хочу спорить. Ваше право мне не верить. У меня этот код работает. https://imgur.com/a/JItwTkt — скриншоты смотреть снизу вверх. |
|
ТэнтаклсБлад, 1. в любую ячейку пишете 1 готово и без макроса Изменено: Ігор Гончаренко — 08.05.2019 11:58:33 Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#14 08.05.2019 12:05:38
тестируйте тщательнее Изменено: Jack Famous — 08.05.2019 12:08:43 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
Jack Famous, откройте ту же ссылку, теперь там четыре скриншота. Изменено: Vladimir1336 — 08.05.2019 13:29:37 |
|
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
Vladimir1336, ах тут же ещё нужно активную ячейку установить правильно Ваше решение мне напоминает обфускацию кода, ведь как по мне всё просто: Изменено: Jack Famous — 08.05.2019 12:26:59 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Vladimir1336 Пользователь Сообщений: 8 |
#17 08.05.2019 12:33:41 Jack Famous
, обфускацию? Серьёзно? Это наоборот упрощение. Цикл? Цикл занимает гораздо больше времени и ресурсов. В моём примере VBA выполняет одну операцию и помещает результат во весь диапазон сразу. В цикле операция будет выполняться столько раз, сколько ячеек в выделенном диапазоне.
Посмотрите сообщение топикстартера — ему это и нужно было. Переменные r и c в его задаче являются координатами активной ячейки. А применять, как он написал, нужно к выделенному диапазону (т. е. Selection). Изменено: Vladimir1336 — 08.05.2019 13:30:14 |
||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#18 08.05.2019 12:50:19 OFF Оскорбить вас или как-то унизить я ни в коем случае не хотел. Представьте, что вы ремонтируете автомобили и знаете, что если не закрутить гайку, то отвалится колесо. А другой эту гайку приварил, что, безусловно тоже сработает, но создаст дополнительные трудности при дальнейшей эксплуатации)) как-то так Размышления о скорости циклов и прочие сравнения в голове без тестов — всё это рассуждения в пользу бедных. Поверьте, тесты, порой, очень удивляют и вы даже не представляете от какого количества параметров, условий и нюансов зависит конечное время выполнения кода (именно поэтому, кстати, говорят, что под каждую задачу — своё решение). Если вы считаете, что специальная вставка действует с помощью магии, вычисляя новое значение для каждой ячейки мгновенно, то это не так))) практически на 100% уверен, что там те же циклы, просто вшитые.
не похоже, чтобы я что-то из этого натворил Изменено: Jack Famous — 08.05.2019 12:52:23 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
|
Vladimir1336 Пользователь Сообщений: 8 |
#19 08.05.2019 13:03:57 Jack Famous, не нужно мне рассказывать то, что я и так знаю (массивы). Я хоть и зарегистрировался здесь сегодня, но программирую уже давно. Вам, похоже, просто не с кем поговорить, раз вы строчите такие сочинения. Кстати, вот это повеселило:
Задание автора читаем по диагонали, а потом удивляемся? Забавно. Изменено: Vladimir1336 — 08.05.2019 13:30:33 |
||
Ігор Гончаренко Пользователь Сообщений: 13746 |
#20 08.05.2019 13:26:16 Vladimir1336, Alemox видимо, сделал опечатку: Alemox можно написать без циклов:
поэтому — никто не знает, что нужно автору, если в первом сообщении он пишет
, а потом пишет cell = 1 — подошло! Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||||
vikttur Пользователь Сообщений: 47199 |
Vladimir1336, следите сами за своими сообщениями. Не нужно писать через несколько пустых строк. |
Alemox Пользователь Сообщений: 2183 |
Ігор Гончаренко, Игорь опечатки нет в моём коде. Я дал цикл перебора и единицу просто так написал, она не имеет никакого отношения к ТЗ. Я думаю, что автор это понял и смог уже применить всё правильно. Хотел вообще слово «Текст» написать, но 1 короче. Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#23 08.05.2019 13:47:26 Ігор Гончаренко, вот да) спасибо
тогда я вообще не понимаю, что было нужно Жесть Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#24 08.05.2019 13:50:07
в принципе, это можно читать как: взять каждую выделенную ячейку и вычесть из неё 1. Ведь исходный код делает именно это. И автор упоминает, что делать так для каждой ячейки — утомительно. https://yadi.sk/i/spdDyuM4WRrn4w P.S. эх, видюшка не проигрывается автоматом с Яндекс.Диска, надо скачивать. Попробую в другое место выложить. <#1> Изменено: Дмитрий(The_Prist) Щербаков — 08.05.2019 13:56:46 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
Alemox Пользователь Сообщений: 2183 |
Вот чёрт я во всём виноват Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
Дмитрий(The_Prist) Щербаков, спасибо и вам)) я о том же и писал. Плюс, что применять ActiveCell’ы для диапазона не стоит (даже, если сработает корректно). P.S.: подскажите гиф-мэйкер, пожалуйста… Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
Щас медведь все опять испортит. Что будет в случае вот такого селекта? По вопросам из тем форума, личку не читаю. |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#28 08.05.2019 14:49:04
думаю, что кого-то могут за такое упрятать Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
Alemox Пользователь Сообщений: 2183 |
БМВ, это грустный SELECT. Тогда проверочку добавлять как минимум. Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#30 08.05.2019 15:00:31
ору)))) Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
применение макроса к выделенным ячейкам, возможно ли такое?
Автор GregorY, 27.03.2009, 15:17
« назад — далее »
Уважаемые специалисты!
Прошу подсказать возможно ли применение макроса к выделенному диапазону ячеек?
А возник этот вопрос в связи с простенькой задачкой:
Есть накладная с большим кол-вом позиций (сотни) в которой указанна только марка (например К50-35), но нет наименования. Необходимо добавить к марке наименования — конденсатор, резистор и т.п.
А т.к., например,конденсаторов очень много, то логично было бы выделить диапазон ячеек и выполнив макрос по добавлению к ним слова Конденсатор. Макрос для исправления одной ячейки пишется элементарно, а вот к выделенному диапазону я нигде информации не нашел.
Формулой проще… B1=»Конденсатор»&A1,
где A1 — ячейка с маркой… после, например, результат скопировать как значения… три клавиши нажать…
Если хотите обрабатывать выделенные ячейки макросом, то используйте Selection.
Пример..
Sub AddStr()
Dim vStr As String, c As Variant
vStr = InputBox("Ведите добавляемую текстовую строку:", "Ввод данных")
For Each c In Selection.Cells
c.Value = vStr & c.Value
Next
End Sub
Andrey Lenets, болшое спасибо за оперативный и исчерпывающий ответ! Хочу тоже научиться писать такие аккуратные и изящные макросы! Есть рекомендации где взять информацию для обучения(книги, сайты)?
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли
Большое спасибо за совет, Шпец Докапыч!
Всем добрый день, Прочитав данный топик у меня возник вопрос, что нужно сделать в в строчке кода «c.Value = vStr & c.Value» что бы вводимое значение затирало последний символ в ячейке. Ну например в ячейке значение «111» и при вводе значения в InputBox «9» конечное значение в ячейки было бы «119» ?
Цитата: DENGA от 26.04.2009, 00:52
…что нужно сделать в строчке кода «c.Value = vStr & c.Value», чтобы вводимое значение затирало последний символ в ячейке?..
Поменять на такую:
If Len(c.Value) > 0 Then c.Value = Left(c.Value, Len(c.Value) - 1) & vStr
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли
Большое Вам спасибо Шпец Докапыч!
- Профессиональные приемы работы в Microsoft Excel
-
►
Обмен опытом -
►
Microsoft Excel -
►
применение макроса к выделенным ячейкам, возможно ли такое?
В данном примере мы VBA код который позволяет найти и выделить ячейку макросом. Выделение ячеек с учетом нестандартных условий может оказаться весьма непростой задачей в Excel. В этом примере описано как легко решается данный тип задач с использованием макроса.
Выделение несмежных диапазонов с помощью макроса
У нас иметься таблица уровней расходов отделов по отношению к расходам труда, произведенного в отдельных отделах за первое полугодие. Часть ячеек, для которых неопределенны показатели содержат значение «нд».
Нам необходимо экспонировать ячейки, которые содержат значение «нд» выделив их серым цветом заливки фона. В таблице на десятки тысяч строк сложно искать все эти ячейки. А если редактировать каждую ячейку вручную, тогда потребуется много сил и времени. Без условно можно воспользоваться инструментом «Условное форматирование». Но иногда для автоматизированного решения данной задачи лучше написать свой собственный макрос. Дело в том, что несмотря на широкие возможности условного форматирования – макрос является более гибким инструментом. Его потом можно применять разным способом. Ведь в основе его принципа действия лежит выделение ячеек с определенным значением. После того как ознакомившись с нашей версией макроса вы сможете его легко изменять, придавая ему все новые функциональные возможности. В результате чего вас будет ограничивать только высота полета вашей фантазии.
Откройте редактор: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» (ALT+F11):
В редакторе создайте новый модуль выбрав инструмент: «Insert»-«Module» и введите в него следующий VBA-код макроса:
Sub PoiskZnach()
Dim i As Long
Dim znach As Variant
Dim diapaz1 As Range
Dim diapaz2 As Range
znach = InputBox("Введите исходное значение")
If znach = "" Then Exit Sub
If IsNumeric(znach) Then znach = znach * 1
Set diapaz1 = Application.Intersect(Selection, ActiveSheet.UsedRange)
If diapaz1 Is Nothing Then
MsgBox "Сначала выделите диапазон!"
Exit Sub
Else
For i = 1 To diapaz1.Count
If diapaz1(i) = znach Then
If diapaz2 Is Nothing Then
Set diapaz2 = diapaz1(i)
Else
Set diapaz2 = Application.Union(diapaz2, diapaz1(i))
End If
End If
Next
End If
If diapaz2 Is Nothing Then
Else
diapaz2.Select
End If
End Sub
Теперь если мы хотим выделить все ячейки которые содержать значение «нд» в таблице отчета уровня расходов по отделам и присвоить им серый фон, тогда выделите диапазон B2:F12 выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«PoiskZnach»-«Выполнить».
В результате скачала появиться диалоговое окно, в котором следует ввести исходное значение для поиска «нд» и нажать ОК:
После чего макрос выполнит все инструкции, описанные в его коде на языке программирования VBA. Он автоматически и самостоятельно выделит все ячейки в выделенном диапазоне, которые содержат значение «нд»:
Результат автоматического выделения макросом группы ячеек соответствующие критерию поиска.
В начале кода объявлены 4 переменные:
- i – счетчик цикла.
- znach – значение которое должна содержать ячейка.
- diapaz1 – адрес проверяемого диапазона.
- diapaz2 – адрес для несмежного диапазона, соответствующий критериям пользователя.
Внимание! Понятие несмежный диапазон ячеек подразумевает то, что этот диапазон состоит из нескольких отдельных областей ячеек. Выделение нескольких диапазонов ячеек можно реализовать вручную с нажатой клавишей CTRL на клавиатуре при выделении мышкой разных областей на листе.
После декларации переменных вызываем окно для ввода критериев поиска необходимого значения и передаем эти же критерии в переменную znach. Сразу в коде описываем инструкцию для проверки на пустые критерии. Если пользователь оставил поле ввода пустым или нажал на кнопку «Отмена», тогда работа макроса будет прервана остановкой с помощью вызова соответствующей инструкции:
Exit Sub
Также проверяется: если пользователь ввел текст похожий на числовое значение, тогда преобразовываем критерий поиска в числовые значения с помощью умножения его на число 1.
На следующей строке кода оператором Set создаем ссылку и в переменную diapaz1 присваиваем диапазон ячеек, который состоит из двух частей:
- адрес выделенного диапазона ячеек.
- адрес используемого диапазона рабочего листа Excel.
Внимание! Используемый диапазон рабочего листа получаем с помощью свойства UsedRange. Это адрес диапазона, который охватывает все ячейки с любыми значениями или измененные форматом на текущем рабочем листе Excel:
Set diapaz1 = Application.Intersect(Selection, ActiveSheet.UsedRange)
Поэтому если предварительно не был выделен диапазон ячеек в области используемого диапазона рабочего листа Excel, тогда объект для переменной diapaz1 будет пустым (без ссылки). И дальнейшая работа макроса – не возможна. Поэтому следует проверить не является ли пустым объект в переменной diapaz1:
If diapaz1 Is Nothing Then ‘проверяем пустой ли объект Range в переменной diapaz1
Если перед выполнением макроса не был выделен диапазон в используемой области листа – объект пустой, тогда выводиться соответствующее сообщение с помощью функции:
MsgBox «Сначала выделите диапазон!»
И выполнение кода снова прерывается функцией Exit Sub. Если же пользователь сделал все верно, тогда дальше беспрепятственно выполняется следующая строка в коде макроса.
В следующей части VBA-макроса создан цикл, внутри которого по очереди все ячейки в диапазоне определенным переменной diapaz1 проверяются на наличие искомого значения:
For i = 1 To diapaz1.Count
If diapaz1(i) = znach Then
If diapaz2 Is Nothing Then
Set diapaz2 = diapaz1(i)
Else
Set diapaz2 = Application.Union(diapaz2, diapaz1(i))
End If
End If
Next
Если диапазон переменной diapaz1 содержит ячейку с таким же значением, как и в переменной znach, тогда несмежный диапазон ячеек в переменной diapaz2 увеличивается на один адрес для включения этой ячейки. Таким образом несмежный диапазон в переменной diapaz2 включая в себя все адреса найденных ячеек. Реализовывается увеличение несмежного диапазона в переменной diapaz2 с помощью свойства Union, оно позволяет создавать несмежные диапазоны.
В конце макроса выполняется одно из двух условий: или выделяются все найденные ячейки, или же выводиться сообщение:
MsgBox «Не найдено исходное значение»
Макрос для пересчета выделенной области
Теперь вы самостоятельно можете модифицировать макрос. гибко настраивая его под самые привередливые потребности. Например, добавим новую возможность. Макрос будет сообщать нам о количестве найденных ячеек, соответствующих критерию поиска. Для этого в конце макроса после строки diapaz2.Select следует добавить новую строчку кода:
MsgBox «Найдено: » & diapaz2.Count & » ячеек!»
После выполнения макроса и выделения ним ячеек мы будем получать сообщение о их количестве:
Чтобы макрос умел работать с ключами поиска для многозначных значений (например, звездочка «*» – для всех символов), тогда следует изменить соответствующий оператор в коде. Перейдите на строку макроса №15 где указана инструкция для проверки соответствия значений просматриваемых ячеек в диапазоне со значением переменной znach. Затем измените оператор сравнение на оператор Like:
If diapaz1(i) Like znach Then
Теперь после такой модификации кода макроса в критерии поиска можно использовать ключ звездочку «*» (для всех символов). Например, если мы в поле ввода введем значение «н*» макрос будет учитывать все ячейки, значение которых начинается с символа буквы «н».
В Excel можно использовать только 2 ключа многозначного значения запроса в поиске:
- «*» – символ звездочки (любые другие символы).
- «?» – вопросительный знак (отдельный символ) например, так:
Если нужно сделать так, чтобы макрос не был чувствителен к регистру вводимых текстовых символов? Если макрос должен одинаково находит значения не зависимо большая или маленькая буква в критерии поиска и выдавать один и тот же результат? Тогда в строке №15 , где проверяется значение ячейки используйте функцию LCase следующим образом:
If LCase(diapaz1(i)) Like LCase(znach) Then
Задача функции LCase замена всех символов в тексте на нижний регистр (маленькие буквы):
Полная новая версия кода модифицированного макроса для выделения ячеек выглядит так:
Sub PoiskZnach()
Dim i As Long
Dim znach As Variant
Dim diapaz1 As Range
Dim diapaz2 As Range
znach = InputBox("Введите исходное значение")
If znach = "" Then Exit Sub
If IsNumeric(znach) Then znach = znach * 1
Set diapaz1 = Application.Intersect(Selection, ActiveSheet.UsedRange)
If diapaz1 Is Nothing Then
MsgBox "Сначала выделите диапазон!"
Exit Sub
Else
For i = 1 To diapaz1.Count
If LCase(diapaz1(i)) Like LCase(znach) Then
If diapaz2 Is Nothing Then
Set diapaz2 = diapaz1(i)
Else
Set diapaz2 = Application.Union(diapaz2, diapaz1(i))
End If
End If
Next
End If
If diapaz2 Is Nothing Then
MsgBox "Не найдено исходное значение"
Else
diapaz2.Select
MsgBox "Найдено: " & diapaz2.Count & " ячеек!"
End If
End Sub
Изучая возможности языка программирования VBA, вы можете самостоятельно совершенствовать свой макрос подобным способом как приведено в данном примере.
This macro will highlight the row and column of the active cell. This will fill the row of the active cell with a solid background color and remove the color when a different cell is selected within the excel spreadsheet. Anytime you select a different cell, the new column and row will be highlighted. This is a great macro for zeroing in on a specific cell during a presentation or just when working in a really big spreadsheet. Also, if you remove the gridlines from the spreadsheet, it can be hard to determine which row or column a cell is in and this will allow you to figure that out much quicker.
This macro will overwrite any previous color in the selected cell and row. That means that if you have a worksheet with a lot of background colors and you use this macro and start selecting cells, the previous background colors will disappear.
To change the color of the highlight change the number in this line of code .ColorIndex = 6.
Where to install the macro: Worksheet
Highlight the Row of the Selected Cell
Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Static rr
If rr <> "" Then
With Rows(rr).Interior
.ColorIndex = xlNone
End With
End If
r = Selection.Row
rr = r
With Rows(r).Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Similar Content on TeachExcel
Make a UserForm in Excel
Tutorial: Let’s create a working UserForm in Excel.
This is a step-by-step tutorial that shows you e…
Excel VBA MsgBox — Message Box Macro
Tutorial: Create a pop-up message box in Excel using VBA Macros. This allows you to show a message t…
Pass Arguments to a Macro Called from a Button or Sheet in Excel
Tutorial: How to pass arguments and values to macros called from worksheets, buttons, and anything e…
Select Ranges in the Worksheet from a UserForm
Tutorial: Select a range in Excel from a UserForm and have that range input into the form so that yo…
NPER Function — Calculate Number of Periods Needed for a Set of Payments in Excel
Tutorial: How to calculate the number of periods required for an investment in order to get the desi…
Count the Occurrences of the Largest or Smallest Value in a Range
Tutorial:
How to count the occurrence of the largest or smallest value in a range; basically, how m…
How to Install the Macro
- Select and copy the text from within the grey box above.
- Open the Microsoft Excel file in which you would like the Macro to function.
- Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
Or For other ways to get there, Click Here. - On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
- If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
- Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
- You are now ready to run the macro.
Similar Content
Make a UserForm in Excel
Tutorial: Let’s create a working UserForm in Excel.
This is a step-by-step tutorial that shows you e…
Excel VBA MsgBox — Message Box Macro
Tutorial: Create a pop-up message box in Excel using VBA Macros. This allows you to show a message t…
Pass Arguments to a Macro Called from a Button or Sheet in Excel
Tutorial: How to pass arguments and values to macros called from worksheets, buttons, and anything e…
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Video
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
АЛКС 5 / 3 / 2 Регистрация: 17.02.2016 Сообщений: 344 |
||||
1 |
||||
Заложить в макрос выделенный диапазон на листе23.09.2016, 19:27. Показов 4166. Ответов 1 Метки нет (Все метки)
Подскажите пожалуйста, как можно сослаться в макросе на выделенный диапазон на листе есть такой способ, но он не всегда удобен
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
23.09.2016, 19:27 |
1 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||||||
23.09.2016, 19:38 |
2 |
|||||||
Сообщение было отмечено АЛКС как решение Решение
или
1 |