Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Умножение всех выделенных ячеек на определённое число

Автор Димычч, 25.09.2014, 07:45

« назад - далее »

Димычч

Здравствуйте, уважаемые специалисты!
Придумал алгоритм, а написать макрос знаний не хватает.
Задача: хочу умножить часть ячеек в таблице на 1000. Выделяю диапазон ячеек (или, как вариант, отдельные ячейки), запускаю макрос, и значения в выделенных ячейках меняются на *1000. Число, на которое нужно умножить (1000), вписываю в специальную ячейку, например, А1.
В отличие от вариантов с формулами, данный способ гораздо быстрее и функциональнее. Можно сначала умножить на 1000, потом те же ячейки на 1,18, заменив значение в А1 на "1,18" и т.д., потратив на это секунды. Для других операций (/,+,-) лучше иметь отдельный макрос на отдельной кнопке, дабы не тратить время на ввод параметров при запуске макроса.
Уверен, что макрос будет полезен не только мне.

ShAM

А1 копируем - выделяем нужный диапазон - специальная вставка - умножить - ОК.
Если нужен макрос записываем макрорекордером.
У меня получилось так (чутка подправил):
Sub Умножение()
    Range("A1").Copy
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Sub



Димычч

Благодарю, работает как надо!
Подскажите, как в VBA пишутся операции "+,-,/" чтобы можно было для них тоже создать подобный макрос?
Как я понимаю, достаточно просто заменить xlMultiply?

Димычч

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

ShAM

Цитата: Димычч от 25.09.2014, 10:48Подскажите, как в VBA пишутся операции "+,-,/" чтобы можно было для них тоже создать подобный макрос?
Как я понимаю, достаточно просто заменить xlMultiply?
Правильно понимаете. Я Вам даже метод подсказал, как сам делал:
Цитата: ShAM от 25.09.2014, 10:02Если нужен макрос записываем макрорекордером.
Включаем макрорекордер - копируем А1 - выделяем нужный диапазон - специальная вставка - ЗДЕСЬ СТАВИТЕ КАКОЕ НУЖНО ДЕЙСТВИЕ - ОК - выключаем макрорекордер - смотрим, что получилось.
Цитата: Димычч от 25.09.2014, 10:53
Забыл спросить, можно ли указать макросу, чтобы он только выполнял умножение, а форматы не копировал? Если выделяю ячейки разного формата, то они все приводятся к единому формату из ячейки А1
Можно. В специальной вставке (там где "вставить") точку переносите с "все" на "значения".

Димычч