Как заставить WorkSheet.Cells(i,j) вернуть Range object?

Программирование на Visual Basic for Applications
Gudvin
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 13.07.2004 (Вт) 13:23

Как заставить WorkSheet.Cells(i,j) вернуть Range object?

Сообщение Gudvin » 15.07.2004 (Чт) 18:55

В Excel

А то у меня он возвращает значение ячейки, как не крути...

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

Сообщение GSerg » 15.07.2004 (Чт) 19:15

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

Gudvin
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 13.07.2004 (Вт) 13:23

Сообщение Gudvin » 15.07.2004 (Чт) 19:27

For Each WS In WB.Worksheets
Set C = WS.Cells(C1,C2)
S=C.Address'Здесь ошибка: object required
Next

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

Сообщение GSerg » 15.07.2004 (Чт) 19:40

option explicit не пробовал? Наряду с явным объявлением переменных?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Gudvin
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 13.07.2004 (Вт) 13:23

Сообщение Gudvin » 15.07.2004 (Чт) 19:45

Переменная С явно объявлена

Dim с as Range

А вот option explicit не могу... придется очень много переделывать. Раньше я про нее не знал

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

Сообщение GSerg » 15.07.2004 (Чт) 19:47

Ну для начала, чему равно выражение "c is nothing"?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Gudvin
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 13.07.2004 (Вт) 13:23

Сообщение Gudvin » 15.07.2004 (Чт) 19:56

Ничего не понимаю. В одном месте работает такой же по смыслу код, в другом - нет...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.07.2004 (Пт) 9:36

Лучше все же поставь Option Explicit, меньше загадок будет
Lasciate ogni speranza, voi ch'entrate.

Gudvin
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 13.07.2004 (Вт) 13:23

Сообщение Gudvin » 16.07.2004 (Пт) 11:56

НЕ, слишком много переделывать, или везде придется все равно вариант ставить....

-------------------------
"Умный в гору не пойдет, умный гору обойдет," - сказал муравей, подойдя к железной дороге

Leon_
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 333
Зарегистрирован: 19.05.2004 (Ср) 16:31
Откуда: Moscow

Сообщение Leon_ » 16.07.2004 (Пт) 13:56

Gudvin писал(а):For Each WS In WB.Worksheets
Set C = WS.Cells(C1,C2)
S=C.Address'Здесь ошибка: object required
Next

Попробуй сделать так:
Код: Выделить всё
Dim C      As Excel.Range
For Each WS In WB.Worksheets
     Set C = WS.Range(WS.Cells(1,3), WS.Cells(2,3))
     S = C.Address
Next


Вернуться в VBA

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

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

    TopList