Макрос для матриц - VBA
Формулировка задачи:
Доброе время суток! Как переделать макрос, чтобы он определял размерность массива (динамический массив), затем выполнял его логарифмирование.
Вторым действием, два получившихся массива (Таблицы) перемножить. Еще необходимо, чтобы этот макрос работал и на старых версиях офиса(2007 и т.д.)
Код(сделан в 13-м офисе):
Решение задачи: «Макрос для матриц»
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