Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, вот файл "Макрос_выделение_строк.xls" http://www.sharemania.ru/0246649 макрос срабатывает при нажатии на кнопку "F10". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 00:20 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, Если вы уберете из макроса все знаки доллара $, то ошибка будет уже не на 27 строке, а на 31, что подтверждает мою мысль об ограничении на длину ссылки в имени в 255 знаков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 11:19 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida ошибка выходит на строке Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select ну так возможно переписать ее на типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 11:26 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор ПасадобляK_Aida ошибка выходит на строке Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select ну так возможно переписать ее на типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 11:34 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Djon Player, спасибо большое за пример :) , но как раз возрастание строк будет обязательно, до тысяч и далее... Вы считаете, это самый оптимальный вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 12:03 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, Вы все таки ответьте на вопрос, который задавался еще в другой ветке - ЗАЧЕМ вам выделение? Возможно можно всю проблему решить как-то иначе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 12:25 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Djon PlayerКонкретно для этого примера использование UNION поможет лишь временно, но если количество строк будет разрастаться и строки будут идти не подряд, а с промежутками, то в конце концов всё равно всё упрется в 255 знаков. что значит временно? огласите ограничения union ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 12:33 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaDjon Player, спасибо большое за пример :) , но как раз возрастание строк будет обязательно, до тысяч и далее... Вы считаете, это самый оптимальный вариант? Не знаю что там считает Djon Player, но я считаю что оптимальный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 12:41 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор Пасадобля, Спасибо вам за идею! :) А вы тоже так думаете? (смотрите ниже) "Конкретно для этого примера использование UNION поможет лишь временно, но если количество строк будет разрастаться и строки будут идти не подряд, а с промежутками, то в конце концов всё равно всё упрется в 255 знаков." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 13:34 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Данный файл в поледующем будет загружаться в базу данных. Именно для этого и нужно выделение области. А так как пользователи всегда забывают обозначить область, то приходиться автоматизировать работу с файлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 13:41 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaShocker.Pro, Данный файл в последующем будет загружаться в базу данных. Если не поможет вариант с Union, тогда надо копать в следующую строну: создать чистый лист - скопировать туда в цикле нужные строки по любому условию и уже этот лист тащить в базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 14:06 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор ПасадобляDjon PlayerКонкретно для этого примера использование UNION поможет лишь временно, но если количество строк будет разрастаться и строки будут идти не подряд, а с промежутками, то в конце концов всё равно всё упрется в 255 знаков. что значит временно? огласите ограничения unionРечь не ограничении UNION, а ограничении длины ссылки имени, которой потом будет присваиваться диапазон адресов полученных UNION. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 14:48 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор Пасадобля, Мои слова подтвержаются таким простым примером. При выполнении этого кода имя будет содержать ссылку не на 500 ячеек, а всего лишь на 43. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 14:59 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Djon Player, так и должно быть потому-что sel.Address это string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:23 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор ПасадобляDjon Player, так и должно быть потому-что sel.Address это string А что, разве String не 64кБ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:27 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Djon Player, в вашем тесте выделяется сколько строк? если больше 43 то почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:27 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор Пасадобля, Djon Player Скажите, плиз, вот вариант, который предложил Танцор Пасадобля - хороший, но в действительности, не во всех случаях срабатывает. Попасться можно!!! Вы можите предложить еще что-нибудь, пожалуйста! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:33 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaВы можите предложить еще что-нибудь, пожалуйста! :) Лучше все-таки выкинуть нужные строки на другой лист/файл и потом их обрабатывать. Так будет надежнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:35 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор ПасадобляDjon Player, в вашем тесте выделяется сколько строк? если больше 43 то почему? В моем тесте макрос выделяет 500 строк, но когда выделение присваивается имени, то в итоге имя содержит ссылки только на первые 43 выделенные ячейки. И дело тут не в ограничении Range(sel.Address) Можете попробовать запустить этот макрос, будут выделены 500 ячеек и потом вручную добавить имя, получатся те-же 43 ячейки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:41 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaТанцор Пасадобля, Djon Player Скажите, плиз, вот вариант, который предложил Танцор Пасадобля - хороший, но в действительности, не во всех случаях срабатывает. Попасться можно!!! Вы можите предложить еще что-нибудь, пожалуйста! :) Я предлагаю вам воспользоваться советом Shocker.Pro и либо как-то подкрасить нужные ячейки и после этого экспорт делать на основе цвета, либо скопировать на новый лист только нужные строки. Ну а просто для выделения самих ячеек можно использовать UNION по совету Танцор Пасадобля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:43 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, ну значит там фиксированная... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:54 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
> Автор: K_Aida А для чего определяется именовынный диапазон? Причем с одним и тем-же именем он переобъявляется каждый раз при выполнении условий? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 15:55 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос > Автор: K_Aida А для чего определяется именовынный диапазон? Причем с одним и тем-же именем он переобъявляется каждый раз при выполнении условий? Видимо, экспорт работает с именованным диапазоном. Я обратил внимание не эту ошибку в цикле, но разбирать не стали, ибо все равно не работает как надо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 16:02 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > Я обратил внимание не эту ошибку в цикле, но разбирать не стали, ибо все равно не работает как надо :) Так может из-за этого и не работает? Может можно переделать экспорт на использование Range, или нескольких имен? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 16:16 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Да имя присвоить можно и не в цикле, а после цикла, здесь проблем нет, мне самое главное, чтобы выделял без проблем. Не вижу смысла переноса данных на другой лист. Что здесь ,что на другом листе, все равно действия одни и те же, либо я вас не поняла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 16:17 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaShocker.Pro, Да имя присвоить можно и не в цикле, а после цикла, здесь проблем нет, мне самое главное, чтобы выделял без проблем. Не вижу смысла переноса данных на другой лист. Что здесь ,что на другом листе, все равно действия одни и те же, либо я вас не поняла. На другом листе у вас не будет проблем с диапазоном. Вы выделите и поименуете данные одной кучей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 16:23 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Погонял мою вариацию кода от Djon Player Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 16:38 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Это я проверял свой вариант из первой темы - загнать адреса в массив, затем выгрузить в выделение. Не пройдёт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 16:40 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
> Автор: K_Aida > Да имя присвоить можно и не в цикле, а после цикла, здесь проблем нет, мне самое главное, чтобы выделял без > проблем. Если нужно без проблем выделять, тогда: Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 16:43 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
а девушка то уже ушла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 16:59 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор Пасадобля а девушка то уже ушла Ушла курить, что мы тут все понаписали. Ну да ладно, завтра снова все здесь встретимся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:01 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > Ушла курить Это мужчины уходят курить, а девушки отворачиваются припудрить носик Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:03 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Танцор Пасадобля, Не то вы обсуждаете господа, лучше придумайте как лучше сделать! и потом, не все девушки курят!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:10 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaShocker.Pro, Танцор Пасадобля, Не то вы обсуждаете господа, лучше придумайте как лучше сделать! и потом, не все девушки курят!!! Мы уже придумали, дело за вами. Курят ВСЕ, кто тут тусуется, в частности, мы курим вашу задачу. А вы курите все, что предложили, в частности вариант Игоря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:12 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaShocker.Pro, Танцор Пасадобля, Не то вы обсуждаете господа, лучше придумайте как лучше сделать! и потом, не все девушки курят!!! Вот это похвально! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:13 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, да... всё понятно с вами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:14 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, общими усилиями задачу решили? теперь с вас либо пирожки с капустой, либо фото(свое) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:18 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос > Автор: K_Aida > Да имя присвоить можно и не в цикле, а после цикла, здесь проблем нет, мне самое главное, чтобы выделял без > проблем. Если нужно без проблем выделять, тогда: Проверил код На строчке Код: plaintext Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:18 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
> Автор: Djon Player > Проверил код > На строчке ... > вываливается ошибка, правильнее наверно так Да согласен, поторопился и не проверил Еще можно получить ошибку при большом количестве объеденённых Union'ом Range'й. Но это только мои домыслы и нужно проверять. Проверил, при nCountCells > 27 можно добавить только 120 строк, при rwIndex = 121 уже ошибка. Тогда остается или красить или копировать на новый лист, и там выделять просто диапазон одной командой: Код: plaintext 1. 2. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 17:44 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Игорь ГорбоносТогда остается или красить или копировать на новый лист А красить-то чем поможет (сбрить усы - и расстрелять) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 18:40 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > А красить-то чем поможет Ну "красить" можно по разному Можно цветом, можно значением в дополнительном столбце и автофильтром по этому значению, можно так-же отобрать, хотя в любом случае копирование на новый лист проще в реализации Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 19:59 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос > Автор: Shocker.Pro > А красить-то чем поможет Ну "красить" можно по разному Можно цветом, можно значением в дополнительном столбце и автофильтром по этому значению, можно так-же отобрать, хотя в любом случае копирование на новый лист проще в реализации А, понял тебя. Не факт, что проще. Все зависит от того, как именно идет экспорт. Информация на эту тему от автора топика очень скудна. Например, можно вообще подключиться к книге через ODBC как к БД и написать запрос SELECT ... WHERE со всеми теми условиями, с которыми сейчас работает макрос, то бишь вообще не использовать макрос, при этом получить гораздо бОльшую гибкость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 20:45 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Например, можно вообще подключиться к книге через ODBC как к БД и написать запрос SELECT ... WHERE со всеми теми условиями, с которыми сейчас работает макрос, то бишь вообще не использовать макрос, при этом получить гораздо бОльшую гибкость... И как подключиться к книге ODBC как к БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 23:49 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaИ как подключиться к книге ODBC как к БД? Ну из вас прям все клещами приходится вытягивать. а ЧЕМ подключиться, вы для начала не хотите рассказать? Вы же ни слова не сказали, какая у вас СУБД. Допустим, в Аксессе можно создать связанную таблицу, в качестве источника данных указать ODBC, в настройках подключения указать "Драйвер Microsoft Excel" и выбрать нужный файл. В MSSQL можно создать DTS-пакет, в котором опять же указать источник - "Драйвер Microsoft Excel" и т. п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 00:44 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, вот придумал, может пригодиться Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 07:11 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.ProНапример, можно вообще подключиться к книге через ODBC как к БД K_AidaИ как подключиться к книге ODBC как к БД? Ну из вас прям все клещами приходится вытягивать. а ЧЕМ подключиться, вы для начала не хотите рассказать? Тебе-же русским языком вернули твое-же предложение, но в виде вопроса Shocker.ProВы же ни слова не сказали, какая у вас СУБД. А какая разница, какая. На приемной стороне есть какой-то алгоритм приема, вот под этот алгоритм K_Aida и пытается подстроить свои данные. Хотя могла-бы рассказать подробнее. Потому, что выделение как признак экспортируемости, мне совсем не нравится и я бы использовал другие варианты как вариант копирование на новый лист, откуда просто забирать, или ... или придумывать можно долго, не зная особенностей приемника выделяемых данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 09:02 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Игорь ГорбоносА какая разница, какая. На приемной стороне есть какой-то алгоритм приема, вот под этот алгоритм K_Aida и пытается подстроить свои данные. А черт его знает. Может там используется не ODBC (что скорее всего, иначе бы не понадобился такой дурацкий фильтр с помощью макроса), а, допустим, СОМ. Без подробностей о СУБД и адгоритме переброски мы ничего умного не скажем, а то, что выделение строк макросом - не самый оптимальный вариант для достижения конечной цели - сомнения у нас зародились еще неделю назад ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 10:02 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Ребят, работаю я на SQL 2005. С помощью скрипта идет обработка данных. А область request_item нужна для того, чтобы вытащить данные из файла. А после уже идет обработка данных. А данные вытаскиваю так: select * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="Путь к файлу";Extended properties=Excel 5.0')...request_item Вот поэтому мне и нужна область. Если у кого есть какие-то советы, как сделать иначе, проще чем макрос, то пишите! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 16:35 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaРебят, работаю я на SQL 2005. С помощью скрипта идет обработка данных. А область request_item нужна для того, чтобы вытащить данные из файла. А после уже идет обработка данных. А данные вытаскиваю так: select * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="Путь к файлу";Extended properties=Excel 5.0')...request_item Вот поэтому мне и нужна область. Если у кого есть какие-то советы, как сделать иначе, проще чем макрос, то пишите! :) Чтой-то за синтаксис с многоточием в запросе? Я имел ввиду что-то типа: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 16:49 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
> Автор: K_Aida > Ребят, работаю я на SQL 2005. > А данные вытаскиваю так: > select * > from > OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="Путь к файлу";Extended properties=Excel > 5.0')...request_item Так тем более, выбрасывать в новую книгу, и оттуда забирать тем-же селектом, но без указания request_item Тогда ограничение бодет только на количество строк на листе, судя по Excel 5.0 - 65536 строк. и без всяких заморочекна выделение, имена и все остальное Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 16:56 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > Я имел ввиду что-то типа: да кстати тоже как вариант Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:08 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Ещё 3 дня назад мы спрашивали, зачем именно выделять программирование на VBA программирование на VBA но ответ получили только сегодня :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:14 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Hugo121, Ну и что такого, не все профессионалы как вы все тут, а я только еще учусь, зато я очень много от вас всех узнала. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:20 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, это имя сервера, имя базы, имя владельца схемы и имя таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:26 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaShocker.Pro, это имя сервера, имя базы, имя владельца схемы и имя таблицы разве они не внутри скобки должны быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:33 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, нет, не внутри. Так работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:40 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, привет, а откуда вообще данные в экселе берутся? что входит в обязанности пользователей? к mssql клиент на чем? или эксель и есть клиент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:45 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida А данные вытаскиваю так: select * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="Путь к файлу";Extended properties=Excel 5.0')...request_item Вот поэтому мне и нужна область. достаточно после трех точек указать [ИмяЛиста$] Тут есть еще варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:46 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор Пасадобля, Привет. Данные пользователи вбивают сами. Их обязанность - это вбить данные и озаглавить блок с данными. Чтобы потом загрузить данные в excel. в sql просто запрос пишется на excel файл, и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 17:54 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, вбивают данные куда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 18:09 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор ПасадобляK_Aida, вбивают данные куда? Хочешь предложить Аиде написать сразу клиента для SQL? Данные вбиваются в эксель - он в данном случае служит клиентом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 18:15 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro Данные вбиваются в эксель - он в данном случае служит клиентом :) по фразе "Чтобы потом загрузить данные в excel." это не очевидно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 18:23 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
подозрение что с архитектурой что-то не того... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 18:25 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор Пасадобля, Ой, нет, вы что, это я ошибку в тексте допустила, загрузить данные из excel в базу данных, конечно же!!! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 21:56 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, Попробуйте рекомендации квырквыра - раскажете потом, что получилось.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:34 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Привет всем! Ребята, в итоге я решила копировать данные на другой лист. А потом уже в select вытаскивать данные из этого листа. select * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=\\путь к файлу\Имя файла.xls;Extended properties=Excel 5.0')... [Лист1$] Спасибо вам большое за примеры, вы мне очень помогли!!! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 14:35 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, А почему бы теперь не попробовать: Код: plaintext 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 14:37 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Дело в том, что сейчас это не имеет значения, потому что скрипт это уже все выполняет. Но вообще, конечно же попробовать стоит. :) Я обязательно учту данный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 14:55 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Ребят, а есть какие-нибудь способы, мерцание убрать? Ну то есть, когда цикл прорабатывается, видно как по строчкам бегает, как этого избежать? Просто некрасиво как-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 17:47 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, Ворд при аналогичной проблеме я просто делал невидимым, и, кстати, макрос отрабатывал в разы быстрее. Может попытаться скрыть на время текущую книгу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 17:50 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
У меня обычно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 17:53 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, вот я только что попробовала макросом свернуть файл, а по окончании цикла развернуть его снова. Вроде бы нормально, но хочется и другие варианты расмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 17:54 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaShocker.Pro, Дело в том, что сейчас это не имеет значения, потому что скрипт это уже все выполняет. Но вообще, конечно же попробовать стоит. :) Я обязательно учту данный вариант. Мягше нужно быть, гибчее... А чтоб не мерцало hidden ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 21:41 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Кстати, девушка, фотку обешали? Извольте! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 23:20 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Танцор ПасадобляКстати, девушка, фотку обешали? Извольте! Не боишься? Девушка программирует.... вдруг она в свитере.... и с бородой.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 23:52 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.ProТанцор ПасадобляКстати, девушка, фотку обешали? Извольте! Не боишься? Девушка программирует.... вдруг она в свитере.... и с бородой.... Мне она понравилась. Надеюсь увидеть обезображенное интеллектом лицо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2009, 00:06 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Ребята, с чего вы взяли, что если девушка программирует, то она "в свитере.... и с бородой....".:) Могу вам сказать на это только одно, вы глубоко ошибаетесь... А своё фото я не обещала И потом, какие хитренькие, от меня фото ждёте, а сами что...? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2009, 17:25 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_AidaИ потом, какие хитренькие, от меня фото ждёте, а сами что...? )) Лично у меня - есть в профиле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2009, 17:29 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Кстати, раз уж вы не отказались от макроса, еще немного поумничаю: Код: plaintext Если вы думаете, что таким способом определяете все переменные как String - вы заблуждаетесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2009, 21:43 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Действительно, я могу ошибаться. Если можно описать переменные наиболее правильно, вы покажите, я вам буду очень благодарна :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2009, 10:59 |
|
||
|
Программирование на VBA
|
|||
|---|---|---|---|
|
#18+
K_Aida, нужно после каждой переменной указывать As String Вы указали только после последней, значит, последняя это String , а все остальные переменные имеют "неопределенный тип данных" Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2009, 11:07 |
|
||
|
|

start [/forum/topic.php?all=1&fid=60&tid=2160304]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
100ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 422ms |

| 0 / 0 |
