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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.01.2009, 09:25   #1
("")(Э_Є)("")
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 112
Лампочка Range & Cells

Умные люди, помогите недалёкому

Работает
Код:
Set rng = Worksheets(2).Range("A1:B2")
Не работает
Код:
Set rng = Worksheets(2).Range(Cells(1, 1), Cells(2, 2))
Внимание - вопрос: "Почему и как заставить"

Спасибо
("")(Э_Є)("") вне форума
Старый 26.01.2009, 09:37   #2
cent
Пользователь
 
Аватар для cent
 
Регистрация: 26.12.2008
Сообщений: 73
По умолчанию

Объект Range принимает только значения типа "A1" или "A1:B2".
Объект же Cells(1, 1) по-умолчанию выдает содержимое ячейки [A1] (равносильно Cells(1, 1).Value), а не ссылку на нее.

Цитата:
Set rng = Worksheets(2).Range(Cells(1, 1), Cells(2, 2))
Вот так Ваш код заработает
Код:
Set rng = Worksheets(2).Cells(Cells(1, 1).row, Cells(1,1).column).resize(Cells(2, 2).row, Cells(2, 2).column)
Четко сформулированная задача - половина решения!
<= Спасибо оставляем в отзывах

Последний раз редактировалось cent; 26.01.2009 в 09:42.
cent вне форума
Старый 26.01.2009, 09:42   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Потому, что Вы пытаетесь определить диапазон на одном листе, заданный ячейками другого листа. Правильно так:
Код:
With Sheets(2)
        Set rng = .Range(.Cells(1, 1), .Cells(2, 2))
    End With
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 26.01.2009, 09:46   #4
cent
Пользователь
 
Аватар для cent
 
Регистрация: 26.12.2008
Сообщений: 73
По умолчанию

Цитата:
Вы пытаетесь определить диапазон на одном листе, заданный ячейками другого листа
SAS888, не уловил, где здесь была указана ссылка на другой лист?
Я чего-то не увидел?
Насколько я понимаю, уважаемый ("")(Э_Є)("") хотел вместо выражения
Код:
("A1:B2")
подставить
Код:
(Cells(1, 1), Cells(2, 2))
Четко сформулированная задача - половина решения!
<= Спасибо оставляем в отзывах

Последний раз редактировалось cent; 26.01.2009 в 09:48.
cent вне форума
Старый 26.01.2009, 09:49   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если Worksheets(2) активный, то авторский код будет работать без ошибки. А если нет, то ссылку на лист нужно повторять при каждом обращении к ячейке. Другими словами (без метода With) можно так:
Код:
Set rng = Sheets(2).Range(Sheets(2).Cells(1, 1), Sheets(2).Cells(2, 2))
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 26.01.2009, 09:55   #6
cent
Пользователь
 
Аватар для cent
 
Регистрация: 26.12.2008
Сообщений: 73
По умолчанию

Согласен, умываю руки
Но, если не принимать во внимание активность листа, то оба кода верны, различно лишь описание методов
Четко сформулированная задача - половина решения!
<= Спасибо оставляем в отзывах
cent вне форума
Старый 26.01.2009, 11:19   #7
("")(Э_Є)("")
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 112
По умолчанию

Всем ПРЕВЕД! ("")(Э_Є)("")

То есть, я хотел сказать, спасибо
("")(Э_Є)("") вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Footers(wdHeaderFooterPrimary).Range.Tables.Add АлёнаP Microsoft Office Word 11 30.03.2009 10:54
Нестандартное использование Cells.FormulaR1C1 и Cells.Text Lokkie Microsoft Office Excel 3 21.01.2009 17:41
Проблема с MVC++ 2005 && 2008 на висте NetGod Софт 1 09.08.2008 17:14
Delphi & Access & Ole vodila БД в Delphi 0 15.07.2008 11:11
MS Word: Range kate4ka Общие вопросы Delphi 1 19.02.2008 06:14