![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 24.03.2011
Сообщений: 7
|
![]()
Добрый день уважаемые программисты! У меня при выполнении курсача возник следующий вопрос. Существует матрица, размерность и элементы которой задаются пользователем. Задача минимум -найти обратную матрицу. Я хочу использовать функцию MInverse. Т.Е.
Sheets("Лист1").Range("G12:K16").Se lect Selection.FormulaArray = "=MINVERSE(R[-9]C:R[-5]C[4])" Вопрос собсна- как переделать макрос так чтобы вместо ссылок R1C1 использовались зависимые значения, например s и k. P.S. Пробовал вариант типа Selection.FormulaArray = "=MINVERSE("G" & CStr(s - k + 2) & ":" & "K" & CStr(s - k + 2))". Но что то нифига не пашет. Пишет типа синтаксическая ошибка или ожидается окончание выражения, в зависимости от того с каким настроением Excel проснулся сегодня.Заранее спасибо за ответ! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]() Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 24.03.2011
Сообщений: 7
|
![]()
Спасибо большое за ответ, но я столкнулся с очередным косяком- хотел перевести и столбцы в динамическую форму по аналогии что то типа
Selection.FormulaArray = "=MINVERSE(" & (s - k + 2) & "&" & (s - k - 2) & ":" & (s - k + 2) & "&" & s & ")" где s-k+2=7, s=11, своего рода G3:K7, перевел в формат R1C1, но при выделения захвата формулы выдается то, что захватывается все столбцы Матрица.jpg |
![]() |
![]() |
![]() |
#4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
один из способов обращения к диапазону
Range(cells(r1,c1), cells(r2,c2))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 24.03.2011
Сообщений: 7
|
![]()
Да хотелось бы добить тему в том формате, который указал предыдущий прогер, удобнее намного- сразу к диапазону обращаещься. Ну а если в область строки
Selection.FormulaArray = "=MINVERSE(" & (s - k - 2) & "&" & (s - k + 2) & ":" & (s - k + 2) & "&" & s & ")" . На изменения в красной области не реагирует никак хоть +100 ставь, хоть -500 |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Ну а где же Range и Cells?
Сейчас формула при s = 20 k = 10 получается типа =MINVERSE(8&12:12&20)
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 29.03.2011 в 18:05. |
![]() |
![]() |
![]() |
#7 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
когда указываете диапазон в стиле А1, например "G11:N25" i=11, j=25 тогда аналогичный диапазон можно записать так: "G" & i & ":N" & j. строки с числами собираем в строку.
видите буковки присутствуют, а где они у Вас: (" & (s - k - 2) & "&" & (s - k + 2) & ":" & (s - k + 2) & "&" & s & ")" пишите, как Вам удобно, только пишите правильно.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 24.03.2011
Сообщений: 7
|
![]()
Я возможно некорректно выразился. Постараюсь все разложить по полочкам и обосновать ход своей мысли. Мне надо осуществить несколько операций с матрицами(умножение, отыскание обратной), заранее неизвестной размерности, но не в этом суть. Как написал уважаемый Hugo121
Selection.FormulaArray = "=MINVERSE(G" & (s - k + 2) & ":K" & (s - k + 2) & ")". Я думал что получится переделать столбцы по аналогии со строками (ну ессно в формате R1C1), типа чтобы было вида например (1,1) мол 1-я строка, 1-й столбец. Вот и заменил первые буквы на такие же выражения как и в столбцах-типа (s - k + 2). Excel ошибку не выдает, все нормально но вот такая фигня выходит что выделяет все столбцы. Ну а стиль такой использовать решил, потому что как описал выше предвидется много операций с матрицами и я хотел бы их через вот эти встроенные функции выполнять(minverse и другие). На ваш суд |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Изучайте:
Код:
Ещё - если при выполнении кода активным является другой лист - нужно явно указать, чьи это Cells.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 02.04.2011 в 11:46. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как переделать макрос копировать из других книг(Excel 2003) | vfv | Microsoft Office Excel | 2 | 18.01.2011 15:22 |
Переделать макрос экселя под аксесс | staniiislav | Microsoft Office Excel | 5 | 10.12.2010 10:16 |
Нужно переделать макрос под меня | ganebal | Microsoft Office Excel | 0 | 22.11.2010 19:52 |
Переделать макрос. | Дмитрий Фукс | Microsoft Office Excel | 6 | 12.05.2010 09:10 |
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос | as-is | Microsoft Office Excel | 4 | 25.02.2010 07:51 |