Artem7777 0 / 0 / 0 Регистрация: 21.04.2013 Сообщений: 63 |
||||
1 |
||||
21.04.2013, 23:43. Показов 6501. Ответов 4 Метки нет (Все метки)
Начал познавать vba excel, и столкнулся с такой проблемой:
Пожалуйста помогите разобраться в чем ошибка)))))
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
21.04.2013, 23:43 |
Ответы с готовыми решениями: Умножение двух ячеек в VBA Умножение двух стобцов Закрашивание ячеек Excel Перемешивание ячеек в excel 4 |
4377 / 661 / 36 Регистрация: 17.01.2010 Сообщений: 2,134 |
|
22.04.2013, 00:07 |
2 |
Не знаю, но сначало попробуйте после sub …() обьявить
0 |
andriyChieri 7 / 2 / 0 Регистрация: 13.04.2013 Сообщений: 60 |
||||
22.04.2013, 00:25 |
3 |
|||
попробуй значение ячейки умножать через переменную Добавлено через 1 минуту
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
22.04.2013, 00:29 |
4 |
Ячейки нумеруются с 1 , а не с 0.
1 |
4377 / 661 / 36 Регистрация: 17.01.2010 Сообщений: 2,134 |
|
22.04.2013, 00:31 |
5 |
Переменную тоже нужно обьявить. И желательно соответствующего типа. Добавлено через 53 секунды
0 |
Арифметические (математические) операторы, использующиеся в VBA Excel. Их предназначение, особенности вычислений, приоритет в выражениях.
Обзор арифметических операторов
Операторы | Описание |
---|---|
Оператор «+» | Сложение двух чисел или объединение двух строк (для объединения строк предпочтительнее использовать оператор «&») |
Оператор «-» | Вычитание (определение разности двух чисел) или отрицание (отражение отрицательного значения числового выражения: -15, -a) |
Оператор «*» | Умножение двух чисел |
Оператор «/» | Деление двух чисел (деление на 0 приводит к ошибке) |
Оператор «^» | Возведение числа в степень |
Оператор «» | Целочисленное деление |
Оператор «Mod» | Возвращает остаток от деления двух чисел |
Особенности операторов «» и «Mod»
Перед вычислением целочисленного результата или остатка от деления двух чисел делимое и делитель округляются. Причем, используется бухгалтерское округление:
- -3.5 => -4
- -2.5 => -2
- -1.5 => -2
- -0.5 => 0
- 0.5 => 0
- 1.5 => 2
- 2.5 => 2
- 3.5 => 4
Следующие строки вызовут ошибку «Division by zero» («Деление на ноль»):
a = 3 Mod 0.5 a = 3 (2 — 2.5) |
Чтобы избежать ошибок, когда требуется общепринятое математическое округление, округляйте делитель и делимое с помощью оператора WorksheetFunction.Round.
Приоритет арифметических операторов
Приоритет определяет очередность выполнения математических операторов в одном выражении. Очередность выполнения арифметических операторов в VBA Excel следующая:
- «^» – возведение в степень;
- «—» – отрицание;
- «*» и «/» – умножение и деление;1
- «» – целочисленное деление;
- «Mod» – остаток от деления двух чисел;
- «+» и «—» – сложение и вычитание.2
1 Если умножение и деление выполняются в одном выражении, то каждая такая операция выполняется слева направо в порядке их следования.
2 Если сложение и вычитание выполняются в одном выражении, то каждая такая операция выполняется слева направо в порядке их следования.
Для переопределения приоритета выполнения математических операторов в VBA Excel используются круглые скобки. Сначала выполняются арифметические операторы внутри скобок, затем — операторы вне скобок. Внутри скобок приоритет операторов сохраняется.
a = 3 ^ 2 + 1 ‘a = 10 a = 3 ^ (2 + 1) ‘a = 27 a = 3 ^ (2 + 1 * —2) ‘a = 1 |
Формулировка задачи:
Начал познавать vba excel, и столкнулся с такой проблемой:
Пожалуйста помогите разобраться в чем ошибка)))))
Код к задаче: «Умножение двух ячеек в excel»
textual
Sub qq() For i = 0 To 10 переменная=Cells(i, 1) переменная=переменная*2 Cells(i, 1)=переменная Next i End Sub
Полезно ли:
5 голосов , оценка 4.600 из 5
Умножение диапазона ячеек на число |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Создание простого макроса для перемножения столбца на заданный коэффициент.
Ранее уже публиковалась статья о том, как перемножить столбец на число:
Умножение столбцов таблицы Excel на выбранное число.
Перемножение происходит в несколько действий. Для однократного перемножения выполнить эти действия несложно, но если Вам необходимо постоянно на ежедневной основе выполнять данную процедуру, нервы могут сдать.
Ниже описано, как при помощи макроса можно перемножить выделенные ячейки на фиксированное число в один клик.
Рассмотрим создание макроса.
Макрос будет состоять из 3 частей:
- Создание формы для ввода данных (коэффициента);
- Вызов окна для ввода числа;
- Макрос перемножения при нажатии кнопки в окне.
Первая часть: Вызов окна ввода коэффициента.
Для начала следует создать окно, которое будет появляется при запуске макроса.
Создается окно в панели разработчик:
Второй этап: вызов формы для ввода коэффициента.
Sub Перемножение() ‘название макроса
Okno.Show ‘ вызов формы
End Sub
Третий этап: макрос для кнопки «Рассчитать».
На кнопку «Рассчитать» записывается макрос:
Private Sub CommandButton1_Click()
If IsNumeric(TextBox1.Value) = False Then
MsgBox «Неверный коэффициент. Введите число»
Else
For Each cell In Selection
cell.Value = cell.Value * TextBox1.Value
Next
End If
Okno.Hide
End Sub
,где If IsNumeric(TextBox1.Value) = False – проверяет чтобы введенный коэффициент был числом;
MsgBox «Неверный коэффициент. Введите число» – выводит сообщение об ошибке ввода,
For Each cell In Selection – цикл перебирает все ячейки из выделенного диапазона;
cell.Value = cell.Value * TextBox1.Value – перемножает каждую ячейку на коэффициент (введенное число);
Okno.Hide – закрывает форму для заполнения.
Принцип работы макроса: После запуска макроса, появляется форма для внесения нужного коэффициента, на который перемножается диапазон. В форму вносится число для перемножения и нажимается кнопка «Рассчитать». Макрос «привязанный» к кнопке, меняет значения в ячейка на перемноженные данные.
Приведенный макрос перемножает значения как в вертикальном направлении (столбцы), так и в горизонтальном (строки).
Если у Вас нет времени на написание макроса или что-то не получается Вы можете скачать его вместе с нашей надстройкой по ссылке: http://ruexcel.ru/product/pack1/
Видео с принципом работы макроса: