Макрос для матриц - VBA
Формулировка задачи:
Доброе время суток! Как переделать макрос, чтобы он определял размерность массива (динамический массив), затем выполнял его логарифмирование.
Вторым действием, два получившихся массива (Таблицы) перемножить. Еще необходимо, чтобы этот макрос работал и на старых версиях офиса(2007 и т.д.)
Код(сделан в 13-м офисе):
Листинг программы
- Sub Макрос3()
- '
- ' Макрос3 Макрос
- '
- '
- Range("F1").Select
- Application.WindowState = xlMaximized
- ActiveCell.FormulaR1C1 = "=LOG(RC[-5])"
- Selection.AutoFill Destination:=Range("F1:F26"), Type:=xlFillDefault
- Range("F1:F26").Select
- Selection.AutoFill Destination:=Range("F1:I26"), Type:=xlFillDefault
- Range("F1:I26").Select
- Range("K1:N26").Select
- Selection.FormulaR1C1 = "=MMULT(RC[-10]:R[25]C[-7],RC[-5]:R[25]C[-2])"
- End Sub
Решение задачи: «Макрос для матриц»
textual
Листинг программы
- Sub Макрос3()
- With [A1].CurrentRegion
- 'заполнение случайными числами - можете исключить
- .Formula = "=INT(RAND()*9)+1"
- .Value = .Value
- 'конец заполнения
- .Offset(, .Columns.Count + 1).Formula = "=LOG(A1)"
- .Offset(, .Columns.Count * 2 + 2).Resize(, .Rows.Count).FormulaArray = _
- Replace(Replace("=MMULT(~,TRANSPOSE(@))", "~", .Address), "@", .Offset(, .Columns.Count + 1).Address)
- End With
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д