Текст задания в самом файле. Постигаем сию науку с сыном-студентом совместно. В принципе, макрос работает но на 1 столбец. В данном примере есть некоторые данные в столбце А. Выбираем их. Аль+Ф8. Выполнить. Вводим число и в столбце В получается ответ. Преподаватель хочет, чтобы макрос работал не только с 1м столбцом, а с диапазоном. Предполагаю, что в данном случае результат удобнее помещать не справа , а снизу выделяемого диапазона для наглядности (разрешено преподавателем).
Буду благодарен, продвигаемся медленно, а скоро сдавать. Благодарность при успешной помощи могу переслать на указанный телефон.
Текст задания в самом файле. Постигаем сию науку с сыном-студентом совместно. В принципе, макрос работает но на 1 столбец. В данном примере есть некоторые данные в столбце А. Выбираем их. Аль+Ф8. Выполнить. Вводим число и в столбце В получается ответ. Преподаватель хочет, чтобы макрос работал не только с 1м столбцом, а с диапазоном. Предполагаю, что в данном случае результат удобнее помещать не справа , а снизу выделяемого диапазона для наглядности (разрешено преподавателем).
Буду благодарен, продвигаемся медленно, а скоро сдавать. Благодарность при успешной помощи могу переслать на указанный телефон.
Sub qqq() Dim s As Double, a, i&, j& s = Val(InputBox("Введите данные", "Ввод данных", _ "Значение по умолчанию", 200, 200)) a = Selection.Value For i = 1 To UBound(a) For j = 1 To UBound(a, 2) If a(i, j) > s Then a(i, j) = a(i, j) / s Next Next Selection(1).Offset(, Selection.Columns.Count + 3).Resize(UBound(a), UBound(a, 2)) = a End Sub
[/vba]
Справа: [vba]
Код
Sub qqq() Dim s As Double, a, i&, j& s = Val(InputBox("Введите данные", "Ввод данных", _ "Значение по умолчанию", 200, 200)) a = Selection.Value For i = 1 To UBound(a) For j = 1 To UBound(a, 2) If a(i, j) > s Then a(i, j) = a(i, j) / s Next Next Selection(1).Offset(, Selection.Columns.Count + 3).Resize(UBound(a), UBound(a, 2)) = a End Sub
макрос работал не только с 1м столбцом, а с диапазоном
[vba]
Код
Sub Massiv() Dim MyArr Dim s As Integer, i As Integer Dim Rng As Range Set Rng = Application.InputBox(prompt:="Выделите диапазон", Type:=8) MyArr = Rng.Value s = Application.InputBox(prompt:="Введите число-делитель", Type:=1) For i = 1 To UBound(MyArr, 1) For j = 1 To UBound(MyArr, 2) If MyArr(i, j) > s Then MyArr(i, j) = MyArr(i, j) / s End If Next Next Range("A23").Resize(UBound(MyArr, 1), UBound(MyArr, 2)) = MyArr End Sub
[/vba]
Цитата
макрос работал не только с 1м столбцом, а с диапазоном
[vba]
Код
Sub Massiv() Dim MyArr Dim s As Integer, i As Integer Dim Rng As Range Set Rng = Application.InputBox(prompt:="Выделите диапазон", Type:=8) MyArr = Rng.Value s = Application.InputBox(prompt:="Введите число-делитель", Type:=1) For i = 1 To UBound(MyArr, 1) For j = 1 To UBound(MyArr, 2) If MyArr(i, j) > s Then MyArr(i, j) = MyArr(i, j) / s End If Next Next Range("A23").Resize(UBound(MyArr, 1), UBound(MyArr, 2)) = MyArr End Sub