Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
25.04.2024, 05:05:09

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
33 243 Сообщений в 5 458 Тем от 6 761 Пользователей
Последний пользователь: Halfdoor
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Как в Vba записать формулу, содержащую ссылки на ячейки
Страниц: [1]   Вниз
Печать
Автор Тема: Как в Vba записать формулу, содержащую ссылки на ячейки  (Прочитано 9476 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Meri A
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля E-mail
« : 27.02.2013, 18:36:54 »

Всем доброго времени суток. такая проблема. нужно в vba записать в ячейку формулу:

Cells(17, 24).FormulaR1C1 = "=SUMPRODUCT(R17C6:R20C6,RC[-11]:R[3]C[-11])"

Сложность в том, что каждый раз ячейки R20C6 и R[3]C[-11] меняются, т.е. по идее нужно, чтобы формула выглядела таким образом:
Cells(17, 24).FormulaR1C1 = "=SUMPRODUCT(R17C6:x, RC[-11]:y)"
где вместо x можно было задавать ячейку опять же в программе типа x=cells(23,6) а вместо y=cells(23,13).

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

Однако мне нужна именно формула в ячейке, чтобы она ССЫЛАЛАСЬ на определенные ячейки. все это необходимо мне, чтобы вызывать в программе Поиск решения и указывать там, что ограничение находится в такой-то ячейке, которая содержит ссылки на изменяемые ячейки.
Надеюсь, что объяснила понятно.
Жду помощи, советов.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #1 : 27.02.2013, 18:41:40 »

Cells(17, 24).FormulaR1C1 = "=SUMPRODUCT(R17C6:" & x & ", RC[-11]:" & y & ")"
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Meri A
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля E-mail
« Ответ #2 : 27.02.2013, 18:54:26 »

получается, если x="r21c6", y="r21c13".
а как в программе задать x,y (в смысле хочется так: x=WorksheetFunction.Index(Cells(20, 6), 0, 0)). как перевести это в удобоваримый вид типа x="r21c6"
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #3 : 27.02.2013, 19:05:05 »

x=cells(23,6).Address(,,xlR1C1)

а вообще нелогично у Вас. Ячейка Cells(20, 6) не может вернуть адресацию "r21c6". Это противоестественно, когда у одной ячейки два адреса :-)
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Meri A
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля E-mail
« Ответ #4 : 27.02.2013, 19:12:43 »

спасибо. а насчет разных адресов: так это не суть важно (у меня же ячейки все время меняются) Улыбка
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru