Одновременное умножение всех данных диапазона

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

Листинг 3.57. Умножение данных

Sub MultAllCells()

Dim dblMult As Double

Dim cell As Range

' Ввод коэффициента для умножения

dblMult = InputBox("Введите коэффициент, на который следует

умножать")

' Умножение содержимого на введенный коэффициент

For Each cell In Selection

If IsNumeric(cell.Value) And cell.Value <> "" Then

' Умножаются только ячейки, содержащие числовые данные

cell.Value = cell.Value * dblMult

Else

MsgBox "В ячейке " & cell.Address & « нечисловое значение»

End If

Next

End Sub

Рассмотрим применение данного макроса на конкретном примере.

Допустим, в ячейках Al, В2 и C3 хранятся числовые значения 10, 15 и 20 соответственно. Выделим диапазон, охватывающий эти ячейки, и запустим приведенный выше макрос на выполнение. В результате откроется окно, изображенное на рис. 3.16.

Рис. 3.16. Окно ввода коэффициента

В данном окне с клавиатуры следует ввести коэффициент, на который необходимо умножить все значения выделенной области. Если ввести коэффициент 2, то в ячейках А1, В2 и C3 значения изменятся соответственно на 20, 30 и40.

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