С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/40: Рейтинг темы: голосов - 40, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 12

Выдает ошибку "Невозможно получить свойство Minverse класса WorkSheetFunction"

05.04.2013, 18:45. Показов 7880. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите исправить ошибку

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Option Explicit
Option Base 1
Dim h As Integer
Dim n, i, j, k As Single
Dim b() As Double
Dim a() As Double
Dim c() As Double
Dim x() As Double
Function f(a() As Double, b() As Double) As Double
f = WorksheetFunction.MMult(WorksheetFunction.MInverse(a()), b())
End Function
Private Sub ìåòîä_îáðàòíîé_ìàòðèöû_Click()
Range("A1:L100").Clear
n = Val(InputBox("Ââåäè ÷èñëî ñòðîê ìàòðèöû"))
ReDim a(n, n), c(n), b(n), x(n)
Cells(1, 1) = "Ìàòðèöà êîýôôèöèåíòîâ Ài"
Cells(1, 5) = "Âåêòîð  ñâîáîäíûõ ÷ëåíîâ Bi"
For i = 1 To n
For j = 1 To n
a(i, j) = Val(InputBox("a(" + Str(i) + "," + Str(j) + ")=", "Ââåäè êîýôôèöèåíòû ïðè íåèçâåñòíûõ"))
Next j
Next i
For i = 1 To n
b(i) = Val(InputBox("b(" + Str(i) + ")=", "Ââåäè ñâîáîäíûå ÷ëåíû"))
Next i
For i = 1 To n
For j = 1 To n
Cells(i + 1, j) = a(i, j)
Cells(i + 1, 5) = b(i)
Next j
Next i
For i = 1 To n
c(i) = f(a(), b())
Next i
End Sub
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.04.2013, 18:45
Ответы с готовыми решениями:

БД (Access) error "1004" Невозможно получить свойство Days360 класса WorksheetFunction
Доброе время суток.. Цель работы, создать БД парковки, и все бы хорошо только вот столкнулся с мерзкой ошибкой.. Используя пример из...

Невозможно получить свойство LocationInTable класса Range
Добрый день! Столкнулся с таким моментом: при работе кода, код ошибок не выдает, но для чего он предназначен, не выполняет! По шагово...

Невозможно получить свойство PivotItems класса PivotField
Добрый день. Ошибка появляется при подстановке переменной: d =...

5
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
05.04.2013, 19:04
chmn, в VBA поставьте курсор на слово "MInverse" и нажмите клавишу "F1". Откроется справка. Обратите внимание, сколько аргументов у функции "MInverse".
0
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 12
05.04.2013, 19:07  [ТС]
Я ведь указала MInverse(a()), а аргумент b() для второй функции умножения Mmult
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
05.04.2013, 19:25
chmn, да, я ошибся в сообщении #2. А для какой цели вы применяется функцию "MInverse"?

Какая Excel-функция аналогична функции "MInverse"? Просто в Excel есть справка на русском языке и можно посмотреть, в чём может быть проблема.


Вот пример, когда функция "MInverse" работает:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub Procedure_1()
 
    Dim myArray_1(1 To 2, 1 To 2) As Long
    Dim myArray_2() As Variant
    
    myArray_1(1, 1) = 1: myArray_1(1, 2) = 2
    myArray_1(2, 1) = 3: myArray_1(1, 2) = 4
    
    myArray_2() = Application.WorksheetFunction.MInverse(myArray_1())
 
End Sub
В VBA-справке, которая вызывается клавишей "F1", есть пункт под кружком, в котором, я так понимаю, написано, что делает эта функция.

Если вы в моём коде сделаете вот так:
Visual Basic
1
2
    myArray_1(1, 1) = 1: myArray_1(1, 2) = 2
    myArray_1(2, 1) = 1: myArray_1(1, 2) = 2
то появится ошибка, которая у вас возникла. Думаю, это происходит из-за того, что происходит деление на ноль.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
06.04.2013, 14:59
chmn, читаем Справку по функции МУМНОЖ (MMult)
МУМНОЖ(массив1;массив2)

Массив1, массив2 - это перемножаемые массивы.

Количество столбцов аргумента массив1 должно быть таким же, как количество сток аргумента массив2, и оба массива должны содержать только числа.
Массив b одномерный, состоит из одной строки. Значит, его надо транспонировать, чтобы он стал массивом из n строк и 1 столбца...
Visual Basic
1
2
3
4
5
Function f(a() As Double, b() As Double) As Variant()
With WorksheetFunction
    f = .MMult(.MInverse(a()), .Transpose(b()))
End With
End Function
... или изначально создавать его как столбец:
Visual Basic
1
ReDim a(n, n), b(n, 1)
, тогда транспонирование не нужно.
Обратите внимание на тип функции f. Функции листа всегда возвращают массивы типа Variant.

И цикл в стр. 32-34 не нужен, функция f возвращает массив искомых Х.
1
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 12
08.04.2013, 16:52  [ТС]
Спасибо большое за помощь. Код используется для решения системы линейных алгебраических уравнений методом обратной матрицы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.04.2013, 16:52
Помогаю со студенческими работами здесь

'Невозможно получить свойство ChartObjects класа Worksheet'
Вобщем я записываю макрос на создание графика потом редактирую график, делую его побольше и перемещяю в удобное для меня место, после...

Невозможно загрузить систему - задумчиво грузится и выдаёт ошибку
Вся проблема в том, что на днях при обычной, стабильной работе системы (Win7), сначала всё зависло, не помогли ни какие манипуляции и...

Spring не создает объект, выдает исключение, что у класса некорректное свойство
Здравствуйте! При загрузки страницы регистрации пользователя, на которой есть объект соответствующий классу DTO, Spring не создает...

Подпрограмма выдает ошибку времени выполнения: Чтение после конца потока невозможно
Дан файл, содержащий сведения об игрушках: указывается название игрушки, ее стоимость в рублях и возрастные границы (например, игрушка...

Почему когда программирую в С++ выдает ошибку невозможно открыть или найти PDB файл?
...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru