Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Добрый день! Подскажите, плиз! Имеется макрос, который выделяет отдельные не пустые строки по заданному условию (смотри ниже). Выходит ошибка Run-time error '1004' Method 'Range' of object '_Global' failed. Причем если заполнено 27 строк, то все работает, а если более, то нет. Не пойму в чем дело. :( Код макроса Sub Запускаем_макрос() Dim ЕдИзм, КолвоВсего, Исх, ДатаЗаявки, Подразделение, НаправлениеРасхода, НаправлениеДеят, СтатусЗаявки As String Dim nResult As Integer 'выделяем все не пустые позиции If ActiveSheet.Name = "Годовая заявка" Then For rwIndex = 10 To 100 ЕдИзм = Range("$E$" & rwIndex).Value КолвоВсего = Range("$F$" & rwIndex).Value Исх = Range("$U$" & rwIndex).Value ДатаЗаявки = Range("$V$" & rwIndex).Value Подразделение = Range("$AA$" & rwIndex).Value НаправлениеРасхода = Range("$AB$" & rwIndex).Value НаправлениеДеят = Range("$AC$" & rwIndex).Value СтатусЗаявки = Range("$AG$" & rwIndex).Value If ЕдИзм <> "" And КолвоВсего <> "" And Исх <> "" And ДатаЗаявки <> "" And Подразделение <> "" And НаправлениеРасхода <> "" And НаправлениеДеят <> "" And СтатусЗаявки <> "" Then Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select ActiveWorkbook.Names.Add Name:="request_item", RefersToR1C1:=Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex) End If Next rwIndex End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:14 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Для начала запостим правильно, чтобы получше рассмотреть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:22 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
на какой строке выходит ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:22 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, Как я понял ошибка просиходит в строке Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:24 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, ошибка выходит на строке Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:26 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Djon PlayerЯ думаю она связанна с ограничением на объединение нескольких диапазонов. Гм. Ручками получается добавить гораздо больше, чем 27. Тут: Код: plaintext 1. Вы уже добавили в Selection.Address новый диапазон, зачем его еще раз добавлять? Попробуйте убрать, для начала, вдруг в этом дело.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:29 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex и чему это будет равно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:30 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Вторая сторчка (смотрите ниже), это присвоение имени "request_item" выделенной области. ActiveWorkbook.Names.Add Name:="request_item", RefersToR1C1:=Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex) То есть,сначала идет выделение области, а потом выделенный блок присваивается имени request_item. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:38 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.ProГм. Ручками получается добавить гораздо больше, чем 27. Я попробовал руками выделял мышкой несвязанные диапазоны. В результате у меня получилось создать имя ссылающееся на 22 диапазона. При добавлении 23 он не добавляется, ошибки при этом не выдается. Могу предположить, что главное даже не количество диапазонов, а главное общая длина строки, которая обозначает этот диапазон. Скорее всего оно ограничено 255 символами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:39 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Konst_One, выделение строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:40 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, Всегда полностью квалифицируйте Ваши ранги, и Бог вас не оставит. Пишите, с какого он листа, с какой книги, и сразу все устаканится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:41 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Djon PlayerЯ попробовал руками выделял мышкой несвязанные диапазоны. В результате у меня получилось создать имя ссылающееся на 22 диапазона. При добавлении 23 он не добавляется, ошибки при этом не выдается.Точнее имя то добавляется, но оно попрежнему указывает лишь на 22 первых диапазона, а дальше обрезает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:42 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Djon Player, вы что предложите, чтобы работало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:43 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaShocker.Pro, Вторая сторчка (смотрите ниже), это присвоение имени "request_item" выделенной области. ActiveWorkbook.Names.Add Name:="request_item", RefersToR1C1:=Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex) То есть,сначала идет выделение области, а потом выделенный блок присваивается имени request_item. в строке Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select вы добавляете новый диапазон к Selection.Address. И к моменту выполнения следующей строки он УЖЕ СОДЕРЖИТ добавленный диапазон и добавлять его второй раз не нужно. Достаточно: ActiveWorkbook.Names.Add Name:="request_item", RefersToR1C1:=Range(Selection.Address) И вообще, закомментируйте эту строку для начала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:47 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Ага, я поняла вас. Но вообще я уже почти все убрала, у меня только и осталось одно выделение. Все равно не работает. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:49 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, дайте файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:50 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaDjon Player, вы что предложите, чтобы работало? Если диапазоны абсолютно несвязанны, и моё предположение об ограничении на количество знаком в адресе имени верно, то тут предложить нечего, надо менять концепцию программы, определяться, для чего это вобще нужно, может и не нужно. Если некоторые диапазоны имеют общую границу и два диапазона можно заменить одним, то надо заменять. Например если выделены участки A1:U1,A2:U2,A3:U3,A4:U4, то вместо такого диапазона можно написать один большой диапазон A1:U4. Но повторюсь, что если диапазоны все не связанны, тут надо менять концепцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:56 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Вам на почту что ли отправить, да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 16:01 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaShocker.Pro, Вам на почту что ли отправить, да? Сюда положите, пусть все думают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 16:12 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, :) Он большой уж больно не публикуется, а вам я отправила ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 16:50 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Че-то нету ничего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 16:52 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
нету ничего положите на файлообменку и дайте ссылку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 17:01 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
и еще просьба - называйте темы по существу. Вы всего две темы создали: Программирование на VBA и программирование на VBA очень информативно! Почитайте правила форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 21:11 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36354826&tid=2160304]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 139ms |

| 0 / 0 |
