Как заполнить диапазон ячеек формулой с абс. и отн. ссылками

Программирование на Visual Basic for Applications
ilya_kosykh
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 06.07.2006 (Чт) 18:42

Как заполнить диапазон ячеек формулой с абс. и отн. ссылками

Сообщение ilya_kosykh » 02.08.2006 (Ср) 18:05

Добрый день.
Подскажите, пожалуйста, как заполнить диапазон ячеек формулой с абсолютными и относительными ссылками.
Например:

В ячейках (С2:J2) находятся значения от 1 до 8 (1, 2, 3, 4, 5, 6, 7, 8).
В ячейке (A3) находится значение 5.
Есть выделенная область (C3:T3).
Надо в каждую ячейку выделенной области вставить формулу:
AND($A3= ...$2), где ... - это колонка соответствующей ячейки.
Т.е. фактически выдавать значение True, если заданное в ячейке (А3) значение совпадает с одним из значений в диапазоне (C2:J2).

Я пробовал использовать FormulaR1C1, но не знаю, как сделать абсолютную ссылку ($A3):

For i = 1 To n
Cells(3, i + 2).Select
ActiveCell.FormulaR1C1 = "=AND(RC[-1-i]=R[-1]C)"
Next i

Программа выдает ошибку.
Вопрос: можно ли использовать i внутри такой формулы и, если нельзя - как решить такую задачу.

Заранее спасибо,

Илья.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.08.2006 (Ср) 20:33

Нда...
i внутри формулы - это, конечно, без комментариев...

А формула вообще =RC1=R[-1]C.


ЗЫ. А не догадался ввести формулу в режиме A1, переключиться на R1C1 и посмотреть?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Сообщение Димитрий » 02.08.2006 (Ср) 20:54

Есть удобная фишка:
Поставь курсор в строке формул на ссылку и нажимай F4 - относительность ссылки будет менятся.

ilya_kosykh
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 06.07.2006 (Чт) 18:42

Сообщение ilya_kosykh » 02.08.2006 (Ср) 22:40

GSerg
Извини, но так и не понял, что нужно сделать.
Вопрос сводится к следующему, фактически:
Как в каждую ячейку диапазона С3:T3 поставить ссылку на конкретную ячейку А3.
Т.е. чтобы в каждой ячейке диапазона С3:Т3 была формула: "=А3".

Димитрий
Мне надо сделать это из VBA. Я хочу, чтобы программа сама заполняла ячейки формулой.

Может быть это действительно тривиально, но я чего-то не понимаю...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.08.2006 (Ср) 22:42

Ыыыыыыы.......

range("c3:t3").formula="=$a3"
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ilya_kosykh
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 06.07.2006 (Чт) 18:42

Сообщение ilya_kosykh » 02.08.2006 (Ср) 22:43

GSerg
Если честно, не знаю, как переключиться из А1 в R1C1.
Буду признателен, если расскажешь.

Спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.08.2006 (Ср) 22:44

ЫЫЫЫЫЫыыыыыыыыыы............

Сервис - Параметры - Общие - R1C1
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ilya_kosykh
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 06.07.2006 (Чт) 18:42

Сообщение ilya_kosykh » 02.08.2006 (Ср) 22:48

GSerg
Извини, неправильно сформулировал задачу.
Всё-таки правильно так, как в начальном варианте.
Нужно, чтобы так:
в ячейке С3: =$A3-C2
в ячейке D3: =$A3-D2
в ячейке E3: =$A3-E2

Т.е., чтобы комбинация из .formula и .formulaR1C1.

ilya_kosykh
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 06.07.2006 (Чт) 18:42

Сообщение ilya_kosykh » 02.08.2006 (Ср) 22:51

GSerg
Ыыыыыыы.......


ЫЫЫЫЫЫыыыыыыыыыы............


Сорри... я не программист. Это мой 100% первый опыт. Я думаю, что лучше не показывать программисту то, что я написал у себя в макросе.
Просто пытаюсь на будущее сэкономить себе время.

Спасибо ещё раз.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.08.2006 (Ср) 22:54

ilya_kosykh писал(а):Сорри... я не программист. Это мой 100% первый опыт.

Кхм...
Не могу не заметить, что опыт программирования тут ни при чём. Строка формул на экране отображается? Скопировать её содержимое в код можно? Скопировать, без изменений, прямо между кавычками, которые справа от оператора "равно"?

Ввёл формулу, посмотрел, как она выглядит в r1c1, скопировал в код. Всё. Что не так?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ilya_kosykh
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 06.07.2006 (Чт) 18:42

Сообщение ilya_kosykh » 02.08.2006 (Ср) 23:01

GSerg

Всё... понял, спасибо.
Просто не знал, как создаются абсолютные ссылки.
Теперь понял, что они пишутся без скобок квадратных.

Спасибо, теперь всё должно получиться.
Извиняюсь за торможение. Не знал синтаксиса.

Спасибо ещё раз.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 13

    TopList