Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не работает Range (Cells(i, j), Cells(y, z)) / 10 сообщений из 10, страница 1 из 1
29.01.2010, 11:55
    #36438186
Indian
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
Помогите, пожалуйста, кто нибудь! Уже два часа мучаюсь. Работаю в Excel 2003. В хелпе написанно, что существует очень удобный (для меня) способ описать диапазон подобным образом:

Код: plaintext
1.
Worksheets("Sheet1").Activate
Range(Cells( 1 ,  1 ), Cells( 5 ,  3 )).Font.Italic = True

Пишу сам:

Код: plaintext
ThisWorkbook.Worksheets( 1 ).Range(Cells( 84 ,  2 ), Cells( 85 ,  2 )).Value =  111 

Выдает ошибку '1004'. Все перепробовал. Ничего не помогает. Почему в хэлпе написанно, что так можно обращаться, а у меня не работает?
...
Рейтинг: 0 / 0
29.01.2010, 12:02
    #36438214
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
> Автор: Indian
> ThisWorkbook.Worksheets(1).Range(Cells(84, 2), Cells(85, 2)).Value = 111
> Выдает ошибку '1004'. Все перепробовал. Ничего не помогает. Почему в хэлпе написанно, что так можно обращаться, а
> у меня не работает?

Наверное это: ThisWorkbook.Worksheets(1).Range в одной книге, а это: Cells(84, 2), Cells(85, 2) в другой
книге. Указывай полный путь

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.01.2010, 12:19
    #36438282
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
IndianПомогите, пожалуйста, кто нибудь! Уже два часа мучаюсь. Работаю в Excel 2003. В хелпе написанно, что существует очень удобный (для меня) способ описать диапазон подобным образом:

Код: plaintext
1.
Worksheets("Sheet1").Activate
Range(Cells( 1 ,  1 ), Cells( 5 ,  3 )).Font.Italic = True

Пишу сам:

Код: plaintext
ThisWorkbook.Worksheets( 1 ).Range(Cells( 84 ,  2 ), Cells( 85 ,  2 )).Value =  111 

Выдает ошибку '1004'. Все перепробовал. Ничего не помогает. Почему в хэлпе написанно, что так можно обращаться, а у меня не работает?Запускаю макрос
Код: plaintext
1.
2.
3.
Option Explicit
Sub test()
 ThisWorkbook.Worksheets( 1 ).Range(Cells( 84 ,  2 ), Cells( 85 ,  2 )).Value =  111 
End Sub
У меня в Excel 2003 всё работает, ошибок не выдаёт, в ячейках B84 и B85 вводиться 111.
В чем то другом у вас ошибка. Может лист (самый первый в книге из которого запускается макрос) скрыт или защищён, в этом случае тоже ошибку 1004 выдаст.
...
Рейтинг: 0 / 0
29.01.2010, 13:26
    #36438510
Indian
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
Не знаю почему, но когда переместил этот код выше обработки других книг и активирования других листов, то все заработало, хотя, тот же код в виде:
Код: plaintext
ThisWorkbook.Worksheets( 1 ).Range("B84:B85").Value =  111 
работает из любого места. Но такая адресация гораздо менее удобна, чем первоначальный вариант. Может кто-то сможет объяснить в чем разница между этими способами?
...
Рейтинг: 0 / 0
29.01.2010, 13:27
    #36438518
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
Вам же Игорь сказал - указывайте полный путь перед Cells
...
Рейтинг: 0 / 0
29.01.2010, 13:38
    #36438560
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
Объясни ему (экселю) подробно:
Код: plaintext
1.
2.
3.
Sub tt()
ThisWorkbook.Worksheets( 1 ).Range(ThisWorkbook.Worksheets( 1 ).Cells( 84 ,  2 ), ThisWorkbook.Worksheets( 1 ).Cells( 85 ,  2 )).Value =  111 
End Sub
...
Рейтинг: 0 / 0
29.01.2010, 13:49
    #36438601
Indian
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
Hugo121Объясни ему (экселю) подробно
Ничего себе!!! Спасибо за то что показали что-то новенькое :)
И все же, мне интересно в чем разница между
Код: plaintext
.Range("A1:A2") и .Range(Cells( 1 , 1 ), Cells( 2 , 1 ))
...
Рейтинг: 0 / 0
29.01.2010, 14:07
    #36438685
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
В адресации.
В циклах удобнее использовать второй вариант
...
Рейтинг: 0 / 0
29.01.2010, 14:30
    #36438793
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
Второй вариант можно записать и так, попрозрачнее:
Код: plaintext
1.
2.
3.
4.
5.
Sub tt()
Dim abc As Object
Set abc = ThisWorkbook.Worksheets( 1 )
abc.Range(abc.Cells( 84 ,  2 ), abc.Cells( 85 ,  2 )).Value =  111 
End Sub
...
Рейтинг: 0 / 0
29.01.2010, 17:41
    #36439408
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Range (Cells(i, j), Cells(y, z))
IndianИ все же, мне интересно в чем разница между
Код: plaintext
.Range("A1:A2") и .Range(Cells( 1 , 1 ), Cells( 2 , 1 ))

Разница в том, что в .Range("A1:A2") берется область "A1:A2" от некоего листа который указан в конструкции with.
А в .Range(Cells(1,1), Cells(2,1)) тоже берется область от листа, но при этом вместо области на указаном листе адресуется область на текущем листе.
Никогда не делай Cells() или Range(), всегда делай somesheet.Cells() или somesheet.Range()
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не работает Range (Cells(i, j), Cells(y, z)) / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]