Макрос для матриц - VBA

Узнай цену своей работы

Формулировка задачи:

Доброе время суток! Как переделать макрос, чтобы он определял размерность массива (динамический массив), затем выполнял его логарифмирование. Вторым действием, два получившихся массива (Таблицы) перемножить. Еще необходимо, чтобы этот макрос работал и на старых версиях офиса(2007 и т.д.) Код(сделан в 13-м офисе):
Листинг программы
  1. Sub Макрос3()
  2. '
  3. ' Макрос3 Макрос
  4. '
  5. '
  6. Range("F1").Select
  7. Application.WindowState = xlMaximized
  8. ActiveCell.FormulaR1C1 = "=LOG(RC[-5])"
  9. Selection.AutoFill Destination:=Range("F1:F26"), Type:=xlFillDefault
  10. Range("F1:F26").Select
  11. Selection.AutoFill Destination:=Range("F1:I26"), Type:=xlFillDefault
  12. Range("F1:I26").Select
  13. Range("K1:N26").Select
  14. Selection.FormulaR1C1 = "=MMULT(RC[-10]:R[25]C[-7],RC[-5]:R[25]C[-2])"
  15. End Sub

Решение задачи: «Макрос для матриц»

textual
Листинг программы
  1. Sub Макрос3()
  2.   With [A1].CurrentRegion
  3. 'заполнение случайными числами - можете исключить
  4.    .Formula = "=INT(RAND()*9)+1"
  5.     .Value = .Value
  6. 'конец заполнения
  7.    .Offset(, .Columns.Count + 1).Formula = "=LOG(A1)"
  8.     .Offset(, .Columns.Count * 2 + 2).Resize(, .Rows.Count).FormulaArray = _
  9.       Replace(Replace("=MMULT(~,TRANSPOSE(@))", "~", .Address), "@", .Offset(, .Columns.Count + 1).Address)
  10.   End With
  11. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы