Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2011, 18:32   #1
Squarded
Пользователь
 
Регистрация: 23.07.2011
Сообщений: 20
По умолчанию Как протащить формулу, содежащуюю переменное названия листа в переменном диапазоне?

Здравствуйте!
При написании макроса столкнулся с проблемой: нужно ячейке B3 на одном листе (пусть Лист2 будет) присвоить значение из ячейки В3 с другого листа (Лист1 к примеру)
Код:
Range("B4").Select
ActiveCell.FormulaR1C1 = "=Лист1!RC"
и протащить эту формулу на листе 2 до 3ей с конца заполненной ячейки
Код:
Cells(Rows.Count, 2).End(xlUp).Offset(-3, 0).Select
Код:
Range("B4").AutoFill Destination:=Range("B4", ?), Type:=xlFillDefault
Проблема в том, что названия листов заранее неизвестны, т.е. нужно ее переменной записать, но я не могу, присвоил значение названия листа переменной х (тип String), поскажите как в формуле ее проставить "=Лист1!RC", чтобы вместо Лист один была переменная х, содержащая имя нужного листа

тоже и с 3ей с конца ячейкой, её тоже переменной нужно записать, чтобы она встала вместо знака ?

Подскажите как это сделать, пожалуйста!!!
Squarded вне форума Ответить с цитированием
Старый 30.07.2011, 19:06   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Вам нужно "присвоить значение" или вписать формулу? Вот оба варианта:
Код:
Sub Вставить_формулы()
Dim x As String
x = "Лист1"
Range("B4", Cells(Rows.Count, 2).End(xlUp).Offset(-3, 0)).FormulaR1C1 = "=" & x & "!RC"
End Sub

Sub Присвоить_значения()
Dim x As String
x = "Лист1"
With Range("B4", Cells(Rows.Count, 2).End(xlUp).Offset(-3, 0))
    .Value = Range(x & "!" & .Address).Value
End With
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 30.07.2011, 19:09   #3
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

вставляй формулу сразу в весь диапазон, не надо "тянуть":
Код:
Range("B4").Select
range(ActiveCell, Cells(Rows.Count, 2).End(xlUp).Offset(-3, 0)).FormulaR1C1 = "=Лист1!RC"
аналитика вне форума Ответить с цитированием
Старый 30.07.2011, 19:53   #4
Squarded
Пользователь
 
Регистрация: 23.07.2011
Сообщений: 20
По умолчанию

Казанский, аналитика, спасибо большое!!! помогло, а то весь вечер убил на это
Squarded вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передать в формулу переменное число аргументов Тупой Microsoft Office Excel 5 29.09.2010 03:15
протащить ячейки через клавиатуру peq Microsoft Office Excel 5 18.09.2010 00:23
Как узнать переменное число параметров Impuls1989 Общие вопросы C/C++ 7 19.06.2009 15:24
Вычисление суммы при переменном диапазоне Million Microsoft Office Excel 1 23.09.2008 15:42
как найти данные в диапазоне Tanya2007 Microsoft Office Excel 2 20.11.2007 19:33