powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не работает Range (Cells(i, j), Cells(y, z))
10 сообщений из 10, страница 1 из 1
Не работает Range (Cells(i, j), Cells(y, z))
    #36438186
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'. Все перепробовал. Ничего не помогает. Почему в хэлпе написанно, что так можно обращаться, а у меня не работает?
...
Рейтинг: 0 / 0
Не работает Range (Cells(i, j), Cells(y, z))
    #36438214
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: 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
Не работает Range (Cells(i, j), Cells(y, z))
    #36438282
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Не работает Range (Cells(i, j), Cells(y, z))
    #36438510
Indian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю почему, но когда переместил этот код выше обработки других книг и активирования других листов, то все заработало, хотя, тот же код в виде:
Код: plaintext
ThisWorkbook.Worksheets( 1 ).Range("B84:B85").Value =  111 
работает из любого места. Но такая адресация гораздо менее удобна, чем первоначальный вариант. Может кто-то сможет объяснить в чем разница между этими способами?
...
Рейтинг: 0 / 0
Не работает Range (Cells(i, j), Cells(y, z))
    #36438518
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам же Игорь сказал - указывайте полный путь перед Cells
...
Рейтинг: 0 / 0
Не работает Range (Cells(i, j), Cells(y, z))
    #36438560
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясни ему (экселю) подробно:
Код: 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
Не работает Range (Cells(i, j), Cells(y, z))
    #36438601
Indian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Объясни ему (экселю) подробно
Ничего себе!!! Спасибо за то что показали что-то новенькое :)
И все же, мне интересно в чем разница между
Код: plaintext
.Range("A1:A2") и .Range(Cells( 1 , 1 ), Cells( 2 , 1 ))
...
Рейтинг: 0 / 0
Не работает Range (Cells(i, j), Cells(y, z))
    #36438685
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В адресации.
В циклах удобнее использовать второй вариант
...
Рейтинг: 0 / 0
Не работает Range (Cells(i, j), Cells(y, z))
    #36438793
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Второй вариант можно записать и так, попрозрачнее:
Код: 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
Не работает Range (Cells(i, j), Cells(y, z))
    #36439408
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не работает Range (Cells(i, j), Cells(y, z))
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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