ctrl shift enter для массива

Я пытаюсь создать макрос, который возвращает оцененный std dev для портфеля в ячейку. Однако, поскольку количество акций, их ковар, а также их весы будут меняться в основном постоянно и с разными портфелями, которые я хочу в VBA (моя конечная цель – сделать мои отчеты максимально легкими).

Кажется, я не понимаю, как ctrl + shift + enter или часть sqr.

Не могли бы вы посмотреть мой код, помогите мне?

Sub PorteføljeRisiko() Dim RapportBok As Workbook Dim RapportArk As Worksheet Set RapportBok = Workbooks("Rapport kunder") Set RapportArk = RapportBok.Sheets(1) Dim Region1 As Long Dim RegionA As Long Dim Matrise As Range 

(поскольку количество акций не меняется, я узнаю, сколько строк, которые фактически включают значение (т. е.% взвешивания в каждой доле))

 Region1 = Application.WorksheetFunction.CountIf(RapportArk.Range("AC7:AC18"), "<>" & "") RegionA = Region1 - 1 

(получить матрицу для ковара между акциями по мере того, как доля акций меняется с оплатой и продажей акций. Матрица начинается в ячейках (3,55)

 SisteKolonne = RapportArk.Cells(RegionA + 3, RegionA + 55) Set Matrise = RapportArk.Range(Cells(3, 55), Cells(3 + RegionA, 55 + RegionA)) Set Region = RapportArk.Range("AC7:AC" & Region1 + 6) 

(Я хочу результат в Range («AG21»))

 RapportArk.Range("AG21").FormulaArray = MMult(Application.MMult(Region, Matrise), Application.Transpose(Region)) 

(Все работает отлично, за исключением того, что оно возвращает #VALUE !, поскольку я не могу не получить ни Ctrl + shift + ввести часть, ни часть SQR в макросе)

 End Sub 

Прежде всего то, что вы вычисляете здесь в VBA, не является formula а value . Кроме того, я не мог проверить все ваши расчеты, но я мог видеть проблему здесь:

Application.MMult(Region, Matrise)

Размеры не учитывают правила матричного умножения. Из анализа вашего кода Region является вектором столбца с размером Region1 , а MatriseRegion1 x Region1 .

Помните, что умножение матрицы не является коммутативным. Скорее всего, вы хотели бы переключить порядок этих операндов:

 Application.MMult(Matrise, Region) 

Это даст вам вектор-столбец размера Region1 . Но тогда вы хотите иметь точечный продукт с векторным Region и здесь снова должен появиться вектор строки , поэтому вам следует применить Transpose в первом операнде, а не на втором. Поэтому правильное утверждение должно быть:

 RapportArk.Range("AG21").value = _ Application.MMult(Application.Transpose(Application.MMult(Matrise, Region)), Region) 

Поскольку последняя операция является dot-product двух векторов, вы можете, вероятно, упростить ее с помощью SumProduct :

 RapportArk.Range("AG21").value = _ Application.SumProduct(Application.MMult(Matrise, Region), Region) 
  • Сумма, если дата строки - январь, а ячейка строки имеет в ней определенный текст
  • Excel 2007, если диапазон = A2 vlookup
  • Расчет массива Excel в рабочей таблице
  • Как создать формулу цикла или суммы в Microsoft Excel?
  • Найти n-й экземпляр в массиве в Excel с несколькими критериями
  • VBA: не удалось взять последнюю строку для заполнения таблицы (массив листов)
  • Требуется объект Range.text
  • VBA подсчитывает непустые элементы массива
  • PHP: изменение значения многомерного массива с использованием foreach
  • разделенная ячейка на подчеркнутых словах vba
  • Сортировка элементов сводной таблицы Excel на основе даты
  • Interesting Posts

    OLE.Add pdf отображается strangley

    сопоставить два столбца и отобразить значения из третьего столбца, используя vlookup

    Как передать данные ячейки в формулу countifs?

    Некоторая проблема с поставщиком «Microsoft.ACE.OLEDB.12.0» не зарегистрирована на локальном компьютере ».

    Excel – Формула угадывает неправильно в команде Fill Down

    Вставка изображения в Excel из строки

    Добавление переменной в формулу vba

    Как выбрать первый экземпляр строки и удалить всю строку

    excel vba как изменить содержимое массива, ссылаясь на имя массива

    используя макрос excel для суммирования данных конкретного столбца и передачи данных на лист2

    Merg duplicate в столбце 1, суммируя их значения в столбце 3, хотя сохраняйте значения в столбце 2 (которые также дублируются) У меня есть этот код

    Поиск Excel в массиве и столбце возврата

    Excel Условное форматирование. Выделите первую пустую строку после используемого диапазона.

    Помощь в написании этого скрипта в файле excel

    Создать файл po из таблицы excel

    Давайте будем гением компьютера.