powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Программирование на VBA
106 сообщений из 106, показаны все 5 страниц
Программирование на VBA
    #36354449
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Подскажите, плиз!
Имеется макрос, который выделяет отдельные не пустые строки по заданному условию (смотри ниже).

Выходит ошибка 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
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354475
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала запостим правильно, чтобы получше рассмотреть:
Код: 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.
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
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354477
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на какой строке выходит ошибка?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354482
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,

Как я понял ошибка просиходит в строке
Код: plaintext
1.
Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select
Я думаю она связанна с ограничением на объединение нескольких диапазонов.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354491
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

ошибка выходит на строке
Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354497
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon PlayerЯ думаю она связанна с ограничением на объединение нескольких диапазонов.

Гм. Ручками получается добавить гораздо больше, чем 27.

Тут:
Код: plaintext
1.
Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select
ActiveWorkbook.Names.Add Name:="request_item", RefersToR1C1:=Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex)

Вы уже добавили в Selection.Address новый диапазон, зачем его еще раз добавлять? Попробуйте убрать, для начала, вдруг в этом дело....
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354501
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex

и чему это будет равно?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354529
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Вторая сторчка (смотрите ниже), это присвоение имени "request_item" выделенной области.
ActiveWorkbook.Names.Add Name:="request_item", RefersToR1C1:=Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex)

То есть,сначала идет выделение области, а потом выделенный блок присваивается имени request_item.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354535
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProГм. Ручками получается добавить гораздо больше, чем 27.
Я попробовал руками выделял мышкой несвязанные диапазоны. В результате у меня получилось создать имя ссылающееся на 22 диапазона. При добавлении 23 он не добавляется, ошибки при этом не выдается.
Могу предположить, что главное даже не количество диапазонов, а главное общая длина строки, которая обозначает этот диапазон. Скорее всего оно ограничено 255 символами.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354538
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

выделение строк.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354542
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,

Всегда полностью квалифицируйте Ваши ранги, и Бог вас не оставит. Пишите, с какого он листа, с какой книги, и сразу все устаканится.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354548
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon PlayerЯ попробовал руками выделял мышкой несвязанные диапазоны. В результате у меня получилось создать имя ссылающееся на 22 диапазона. При добавлении 23 он не добавляется, ошибки при этом не выдается.Точнее имя то добавляется, но оно попрежнему указывает лишь на 22 первых диапазона, а дальше обрезает.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354553
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

вы что предложите, чтобы работало?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354565
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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)

И вообще, закомментируйте эту строку для начала
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354570
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Ага, я поняла вас.

Но вообще я уже почти все убрала, у меня только и осталось одно выделение.
Все равно не работает. :(
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354575
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,

дайте файл
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354597
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaDjon Player,
вы что предложите, чтобы работало?
Если диапазоны абсолютно несвязанны, и моё предположение об ограничении на количество знаком в адресе имени верно, то тут предложить нечего, надо менять концепцию программы, определяться, для чего это вобще нужно, может и не нужно.
Если некоторые диапазоны имеют общую границу и два диапазона можно заменить одним, то надо заменять.
Например если выделены участки A1:U1,A2:U2,A3:U3,A4:U4, то вместо такого диапазона можно написать один большой диапазон A1:U4.
Но повторюсь, что если диапазоны все не связанны, тут надо менять концепцию.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354614
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Вам на почту что ли отправить, да?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354662
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaShocker.Pro,

Вам на почту что ли отправить, да?

Сюда положите, пусть все думают
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354783
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

:) Он большой уж больно не публикуется, а вам я отправила
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354788
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че-то нету ничего
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354816
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

сюда же, да?
zhelezo@inbox.ru
сейчас еще раз отправлю вам
...
Рейтинг: 0 / 0
Программирование на VBA
    #36354826
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нету ничего

положите на файлообменку и дайте ссылку
...
Рейтинг: 0 / 0
Программирование на VBA
    #36355294
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще просьба - называйте темы по существу. Вы всего две темы создали:
Программирование на VBA
и
программирование на VBA

очень информативно!

Почитайте правила форума.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36355517
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

вот файл "Макрос_выделение_строк.xls" http://www.sharemania.ru/0246649
макрос срабатывает при нажатии на кнопку "F10".
...
Рейтинг: 0 / 0
Программирование на VBA
    #36355985
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,

Если вы уберете из макроса все знаки доллара $, то ошибка будет уже не на 27 строке, а на 31, что подтверждает мою мысль об ограничении на длину ссылки в имени в 255 знаков.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356019
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida
ошибка выходит на строке
Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select

ну так возможно переписать ее на типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
set sel = Nothing
цикл
...

If sel Is Nothing Then set sel = Range("A" & rwIndex & ":" & "AP" & rwIndex) Else set sel = Union(sel, Range("A" & rwIndex & ":" & "AP" & rwIndex))
sel.Select

...
Рейтинг: 0 / 0
Программирование на VBA
    #36356050
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцор ПасадобляK_Aida
ошибка выходит на строке
Range(Selection.Address + ",A" & rwIndex & ":" & "AP" & rwIndex).Select

ну так возможно переписать ее на типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
set sel = Nothing
цикл
...

If sel Is Nothing Then set sel = Range("A" & rwIndex & ":" & "AP" & rwIndex) Else set sel = Union(sel, Range("A" & rwIndex & ":" & "AP" & rwIndex))
sel.Select

Конкретно для этого примера использование UNION поможет лишь временно, но если количество строк будет разрастаться и строки будут идти не подряд, а с промежутками, то в конце концов всё равно всё упрется в 255 знаков.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356163
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

спасибо большое за пример :) , но как раз возрастание строк будет обязательно, до тысяч и далее...
Вы считаете, это самый оптимальный вариант?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356261
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,

Вы все таки ответьте на вопрос, который задавался еще в другой ветке - ЗАЧЕМ вам выделение? Возможно можно всю проблему решить как-то иначе.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356286
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon PlayerКонкретно для этого примера использование UNION поможет лишь временно, но если количество строк будет разрастаться и строки будут идти не подряд, а с промежутками, то в конце концов всё равно всё упрется в 255 знаков.
что значит временно? огласите ограничения union
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356317
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaDjon Player,

спасибо большое за пример :) , но как раз возрастание строк будет обязательно, до тысяч и далее...
Вы считаете, это самый оптимальный вариант?
Не знаю что там считает Djon Player, но я считаю что оптимальный
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356475
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Танцор Пасадобля,

Спасибо вам за идею! :)
А вы тоже так думаете? (смотрите ниже)

"Конкретно для этого примера использование UNION поможет лишь временно, но если количество строк будет разрастаться и строки будут идти не подряд, а с промежутками, то в конце концов всё равно всё упрется в 255 знаков."
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356496
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Данный файл в поледующем будет загружаться в базу данных. Именно для этого и нужно выделение области. А так как пользователи всегда забывают обозначить область, то приходиться автоматизировать работу с файлом.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356554
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaShocker.Pro,

Данный файл в последующем будет загружаться в базу данных.

Если не поможет вариант с Union, тогда надо копать в следующую строну: создать чистый лист - скопировать туда в цикле нужные строки по любому условию и уже этот лист тащить в базу.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356678
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцор ПасадобляDjon PlayerКонкретно для этого примера использование UNION поможет лишь временно, но если количество строк будет разрастаться и строки будут идти не подряд, а с промежутками, то в конце концов всё равно всё упрется в 255 знаков.
что значит временно? огласите ограничения unionРечь не ограничении UNION, а ограничении длины ссылки имени, которой потом будет присваиваться диапазон адресов полученных UNION.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356704
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцор Пасадобля,

Мои слова подтвержаются таким простым примером.
При выполнении этого кода имя будет содержать ссылку не на 500 ячеек, а всего лишь на 43.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Option Explicit

Sub test()
 Dim i As Integer
 Dim sel As Range
 
 For i =  1  To  1000  Step  2 
  If sel Is Nothing Then
    Set sel = Cells(i,  1 )
   Else
    Set sel = Union(sel, Cells(i,  1 ))
  End If
  sel.Select
Next i

ActiveWorkbook.Names.Add Name:="request_item", RefersToR1C1:=Range(sel.Address)

End Sub
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356791
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Player,
так и должно быть потому-что sel.Address это string
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356806
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцор ПасадобляDjon Player,
так и должно быть потому-что sel.Address это string

А что, разве String не 64кБ?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356807
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Player,
в вашем тесте выделяется сколько строк? если больше 43 то почему?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356831
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Танцор Пасадобля, Djon Player

Скажите, плиз, вот вариант, который предложил Танцор Пасадобля - хороший, но в действительности, не во всех случаях срабатывает. Попасться можно!!!

Вы можите предложить еще что-нибудь, пожалуйста! :)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356841
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaВы можите предложить еще что-нибудь, пожалуйста! :)

Лучше все-таки выкинуть нужные строки на другой лист/файл и потом их обрабатывать. Так будет надежнее.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356868
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцор ПасадобляDjon Player,
в вашем тесте выделяется сколько строк? если больше 43 то почему?

В моем тесте макрос выделяет 500 строк, но когда выделение присваивается имени, то в итоге имя содержит ссылки только на первые 43 выделенные ячейки.
И дело тут не в ограничении Range(sel.Address)

Можете попробовать запустить этот макрос, будут выделены 500 ячеек и потом вручную добавить имя, получатся те-же 43 ячейки.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356879
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaТанцор Пасадобля, Djon Player

Скажите, плиз, вот вариант, который предложил Танцор Пасадобля - хороший, но в действительности, не во всех случаях срабатывает. Попасться можно!!!

Вы можите предложить еще что-нибудь, пожалуйста! :)
Я предлагаю вам воспользоваться советом Shocker.Pro и либо как-то подкрасить нужные ячейки и после этого экспорт делать на основе цвета, либо скопировать на новый лист только нужные строки.
Ну а просто для выделения самих ячеек можно использовать UNION по совету Танцор Пасадобля.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356912
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
ну значит там фиксированная...
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356913
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: K_Aida

А для чего определяется именовынный диапазон? Причем с одним и тем-же именем он переобъявляется каждый раз при
выполнении условий?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356931
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: K_Aida

А для чего определяется именовынный диапазон? Причем с одним и тем-же именем он переобъявляется каждый раз при
выполнении условий?




Видимо, экспорт работает с именованным диапазоном.

Я обратил внимание не эту ошибку в цикле, но разбирать не стали, ибо все равно не работает как надо :)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356977
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> Я обратил внимание не эту ошибку в цикле, но разбирать не стали, ибо все равно не работает как надо :)

Так может из-за этого и не работает? Может можно переделать экспорт на использование Range, или нескольких имен?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Программирование на VBA
    #36356986
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Да имя присвоить можно и не в цикле, а после цикла, здесь проблем нет, мне самое главное, чтобы выделял без проблем.

Не вижу смысла переноса данных на другой лист. Что здесь ,что на другом листе, все равно действия одни и те же, либо я вас не поняла.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357019
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaShocker.Pro,

Да имя присвоить можно и не в цикле, а после цикла, здесь проблем нет, мне самое главное, чтобы выделял без проблем.

Не вижу смысла переноса данных на другой лист. Что здесь ,что на другом листе, все равно действия одни и те же, либо я вас не поняла.

На другом листе у вас не будет проблем с диапазоном. Вы выделите и поименуете данные одной кучей
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357082
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Погонял мою вариацию кода от 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.
Option Explicit

Sub test()
 Dim i As Integer
 Dim sel As String
 
 For i =  1  To  1000  Step  2 
  If sel = "" Then
    sel = Cells(i,  1 ).Address
   Else
    sel = sel & "," & Cells(i,  1 ).Address
  End If
  Debug.Print sel

Next i

'Range(sel).Select

ActiveWorkbook.Names.Add Name:="request_item", RefersToR1C1:=Range(sel)
End Sub


Вывод - string содержит в себе все адреса, а вот Range(sel).Select не проходит, обрубает.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357096
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это я проверял свой вариант из первой темы - загнать адреса в массив, затем выгрузить в выделение. Не пройдёт...
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357112
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: 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.
Dim rwIndex As Long, nCountCells As Long, sAddresSelect As String, rSelectidRange As Range
nCountCells =  0 
sAddresSelect = ""
rSelectidRange = Nothing
For rwIndex =  10  To  100 
    If ЕдИзм <> "" And КолвоВсего <> "" And Исх <> "" And ДатаЗаявки <> "" And Подразделение <> "" And 
НаправлениеРасхода <> "" And НаправлениеДеят <> "" And СтатусЗаявки <> "" Then
' Запоминаем в строке, адрес, который нужно включить в итоговое выделение
        sAddresSelect = sAddresSelect & "A" & CStr(rwIndex) & ":" & "AP" & CStr(rwIndex) & ","
' Увеличиваем счетчик запомненных адресов, максимум 30 адресов
        nCountCells = nCountCells +  1 
        If nCountCells >  29  Then
'        Если адресов критическое значение, получаем Range по ним
'        Обрезаем последнюю запятую
            sAddresSelect = Left(sAddresSelect, Len(sAddresSelect) -  1 )
'            Проверяем, если наш итоговый диапазон ещё не определён
            If rSelectidRange Is Nothing Then
'            Определяем итоговый диапазон
                Set rSelectidRange = Range(sAddresSelect)
            Else
'            Иначе, добавляем к итоговому диапазону новую порцию
                Set rSelectidRange = Application.Union(rSelectidRange, Range(sAddresSelect))
            End If
'            Сбрасываем счетчики для новой порции ячеек
            sAddresSelect = ""
            nCountCells =  0 
        End If
    End If
Next rwIndex
'По окончании цикла добавляем остатки
sAddresSelect = Left(sAddresSelect, Len(sAddresSelect) -  1 )
If rSelectidRange Is Nothing Then
    Set rSelectidRange = Range(sAddresSelect)
Else
    Set rSelectidRange = Application.Union(rSelectidRange, Range(sAddresSelect))
End If
'Выделяем полученное множество
rSelectidRange.Select
Set rSelectidRange = Nothing


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357175
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а девушка то уже ушла
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357180
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцор Пасадобля а девушка то уже ушла

Ушла курить, что мы тут все понаписали. Ну да ладно, завтра снова все здесь встретимся
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357191
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> Ушла курить

Это мужчины уходят курить, а девушки отворачиваются припудрить носик

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357221
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, Танцор Пасадобля,

Не то вы обсуждаете господа, лучше придумайте как лучше сделать!
и потом, не все девушки курят!!!
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357227
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaShocker.Pro, Танцор Пасадобля,

Не то вы обсуждаете господа, лучше придумайте как лучше сделать!
и потом, не все девушки курят!!!

Мы уже придумали, дело за вами.

Курят ВСЕ, кто тут тусуется, в частности, мы курим вашу задачу.

А вы курите все, что предложили, в частности вариант Игоря.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357230
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaShocker.Pro, Танцор Пасадобля,

Не то вы обсуждаете господа, лучше придумайте как лучше сделать!
и потом, не все девушки курят!!!
Вот это похвально!
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357236
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

да...
всё понятно с вами...
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357257
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,
общими усилиями задачу решили?
теперь с вас либо пирожки с капустой, либо фото(свое)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357258
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: K_Aida
> Да имя присвоить можно и не в цикле, а после цикла, здесь проблем нет, мне самое главное, чтобы выделял без
> проблем.
Если нужно без проблем выделять, тогда:
Проверил код
На строчке
Код: plaintext
rSelectidRange = Nothing
вываливается ошибка, правильнее наверно так
Код: plaintext
Set rSelectidRange = Nothing
После прохожения цикла вываливается ошибка на коде
Код: plaintext
sAddresSelect = Left(sAddresSelect, Len(sAddresSelect) -  1 )
она связанная с тем. что значение переменной sAddresSelect=""
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357346
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Djon Player
> Проверил код
> На строчке ...
> вываливается ошибка, правильнее наверно так

Да согласен, поторопился и не проверил
Еще можно получить ошибку при большом количестве объеденённых Union'ом Range'й. Но это только мои домыслы и нужно
проверять.
Проверил, при nCountCells > 27 можно добавить только 120 строк, при rwIndex = 121 уже ошибка.

Тогда остается или красить или копировать на новый лист, и там выделять просто диапазон одной командой:
Код: plaintext
1.
2.
ActiveWorkbook.Sheets("Не прошедшие проверку").Range("A1:AP" & _
    CStr(Номер_последней_скопированной_строки)).Select


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357539
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносТогда остается или красить или копировать на новый лист

А красить-то чем поможет


(сбрить усы - и расстрелять)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357696
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> А красить-то чем поможет

Ну "красить" можно по разному
Можно цветом, можно значением в дополнительном столбце и автофильтром по этому значению, можно так-же отобрать, хотя в
любом случае копирование на новый лист проще в реализации

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357745
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: Shocker.Pro
> А красить-то чем поможет

Ну "красить" можно по разному
Можно цветом, можно значением в дополнительном столбце и автофильтром по этому значению, можно так-же отобрать, хотя в
любом случае копирование на новый лист проще в реализации



А, понял тебя. Не факт, что проще. Все зависит от того, как именно идет экспорт. Информация на эту тему от автора топика очень скудна. Например, можно вообще подключиться к книге через ODBC как к БД и написать запрос SELECT ... WHERE со всеми теми условиями, с которыми сейчас работает макрос, то бишь вообще не использовать макрос, при этом получить гораздо бОльшую гибкость.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357947
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Например, можно вообще подключиться к книге через ODBC как к БД и написать запрос SELECT ... WHERE со всеми теми условиями, с которыми сейчас работает макрос, то бишь вообще не использовать макрос, при этом получить гораздо бОльшую гибкость...

И как подключиться к книге ODBC как к БД?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36357994
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaИ как подключиться к книге ODBC как к БД?

Ну из вас прям все клещами приходится вытягивать.
а ЧЕМ подключиться, вы для начала не хотите рассказать? Вы же ни слова не сказали, какая у вас СУБД.

Допустим, в Аксессе можно создать связанную таблицу, в качестве источника данных указать ODBC, в настройках подключения указать "Драйвер Microsoft Excel" и выбрать нужный файл. В MSSQL можно создать DTS-пакет, в котором опять же указать источник - "Драйвер Microsoft Excel" и т. п.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36358105
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
Sub Macros1()
Dim pos As Integer, adr As String, flag As Byte
Dim r1 As Integer, r2 As Integer
adr = "": flag =  0 : r1 =  0 : r2 =  0 
For pos =  1  To  100 
    ' условие, указывающее какие строки должны быть выделены, тут от 1 до 20 и от 30 до 50
    ' можно задать свое условие 
    If (pos >=  1  And pos <=  20 ) Or (pos >=  30  And pos <=  50 ) Then 
        flag =  1 
        r1 = IIf(r1 =  0 , pos, r1)
        r2 = pos
    Else
        flag = IIf(flag =  1 ,  2 , flag)
    End If
    If flag =  2  Then
        flag =  0 
        adr = adr & CStr(r1) & ":" & CStr(r2) & ","
        r1 =  0 : r2 =  0 
    End If
Next
If r1 <>  0  And r2 <>  0  Then adr = adr & CStr(r1) & ":" & CStr(r2) & ","
adr = Mid(adr,  1 , Len(adr) -  1 )
Range(adr).Select
End Sub
но на сколько я понял из обсуждения все упирается в длину строки adr
...
Рейтинг: 0 / 0
Программирование на VBA
    #36358202
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНапример, можно вообще подключиться к книге через ODBC как к БД
K_AidaИ как подключиться к книге ODBC как к БД?

Ну из вас прям все клещами приходится вытягивать.
а ЧЕМ подключиться, вы для начала не хотите рассказать?


Тебе-же русским языком вернули твое-же предложение, но в виде вопроса

Shocker.ProВы же ни слова не сказали, какая у вас СУБД.
А какая разница, какая. На приемной стороне есть какой-то алгоритм приема, вот под этот алгоритм K_Aida и пытается подстроить свои данные.
Хотя могла-бы рассказать подробнее. Потому, что выделение как признак экспортируемости, мне совсем не нравится и я бы использовал другие варианты как вариант копирование на новый лист, откуда просто забирать, или ... или придумывать можно долго, не зная особенностей приемника выделяемых данных.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36358326
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносА какая разница, какая. На приемной стороне есть какой-то алгоритм приема, вот под этот алгоритм K_Aida и пытается подстроить свои данные.

А черт его знает. Может там используется не ODBC (что скорее всего, иначе бы не понадобился такой дурацкий фильтр с помощью макроса), а, допустим, СОМ. Без подробностей о СУБД и адгоритме переброски мы ничего умного не скажем, а то, что выделение строк макросом - не самый оптимальный вариант для достижения конечной цели - сомнения у нас зародились еще неделю назад
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359504
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, работаю я на SQL 2005.

С помощью скрипта идет обработка данных. А область request_item нужна для того, чтобы вытащить данные из файла. А после уже идет обработка данных.
А данные вытаскиваю так:

select *
from
OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="Путь к файлу";Extended properties=Excel 5.0')...request_item

Вот поэтому мне и нужна область.
Если у кого есть какие-то советы, как сделать иначе, проще чем макрос, то пишите! :)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359542
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
select * 
from
OpenDataSource(   )
where  ЕдИзм <> "" And КолвоВсего <> "" And Исх <> "" And ДатаЗаявки <> "" And Подразделение <> "" And НаправлениеРасхода <> "" And НаправлениеДеят <> "" And СтатусЗаявки <> ""
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359558
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: 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
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359593
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> Я имел ввиду что-то типа:

да кстати тоже как вариант

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359619
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё 3 дня назад мы спрашивали, зачем именно выделять
программирование на VBA
программирование на VBA
но ответ получили только сегодня :(
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359636
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,

Ну и что такого, не все профессионалы как вы все тут, а я только еще учусь, зато я очень много от вас всех узнала. :)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359654
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

это имя сервера, имя базы, имя владельца схемы и имя таблицы
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359676
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaShocker.Pro,

это имя сервера, имя базы, имя владельца схемы и имя таблицы

разве они не внутри скобки должны быть?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359698
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

нет, не внутри. Так работает.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359715
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,
привет,
а откуда вообще данные в экселе берутся?
что входит в обязанности пользователей?
к mssql клиент на чем? или эксель и есть клиент?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359719
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida
А данные вытаскиваю так:

select *
from
OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="Путь к файлу";Extended properties=Excel 5.0')...request_item

Вот поэтому мне и нужна область.
достаточно после трех точек указать [ИмяЛиста$]
Тут есть еще варианты.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359742
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Танцор Пасадобля,

Привет.
Данные пользователи вбивают сами.
Их обязанность - это вбить данные и озаглавить блок с данными. Чтобы потом загрузить данные в excel.
в sql просто запрос пишется на excel файл, и всё.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359774
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,
вбивают данные куда?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359784
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцор ПасадобляK_Aida,
вбивают данные куда?


Хочешь предложить Аиде написать сразу клиента для SQL?

Данные вбиваются в эксель - он в данном случае служит клиентом :)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359795
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Данные вбиваются в эксель - он в данном случае служит клиентом :)
по фразе "Чтобы потом загрузить данные в excel." это не очевидно
...
Рейтинг: 0 / 0
Программирование на VBA
    #36359799
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подозрение что с архитектурой что-то не того...
...
Рейтинг: 0 / 0
Программирование на VBA
    #36360039
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Танцор Пасадобля,


Ой, нет, вы что, это я ошибку в тексте допустила, загрузить данные из excel в базу данных, конечно же!!! :)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36360090
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,

Попробуйте рекомендации квырквыра - раскажете потом, что получилось....
...
Рейтинг: 0 / 0
Программирование на VBA
    #36361421
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!
Ребята, в итоге я решила копировать данные на другой лист. А потом уже в select вытаскивать данные из этого листа.

select * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=\\путь к файлу\Имя файла.xls;Extended properties=Excel 5.0')... [Лист1$]

Спасибо вам большое за примеры, вы мне очень помогли!!! :)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36361429
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,

А почему бы теперь не попробовать:
Код: plaintext
1.
select * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=\\путь к файлу\Имя файла.xls;Extended properties=Excel 5.0')...[Лист1$]
where --и указать список нужных условий отбора

?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36361504
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Дело в том, что сейчас это не имеет значения, потому что скрипт это уже все выполняет.

Но вообще, конечно же попробовать стоит. :)
Я обязательно учту данный вариант.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362059
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, а есть какие-нибудь способы, мерцание убрать?
Ну то есть, когда цикл прорабатывается, видно как по строчкам бегает, как этого избежать?

Просто некрасиво как-то.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362065
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,

Ворд при аналогичной проблеме я просто делал невидимым, и, кстати, макрос отрабатывал в разы быстрее.

Может попытаться скрыть на время текущую книгу?
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362068
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня обычно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
With Application
    calc_status = .Calculation 'запоминаем настройки пересчёта
    .Calculation = xlManual ' пересчёт в ручной режим (если можно по коду)
    .ScreenUpdating = False 'вот это чтоб не мерцало
 
'собственно код

    .Calculation = calc_status
    .ScreenUpdating = True
End With

...
Рейтинг: 0 / 0
Программирование на VBA
    #36362073
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

вот я только что попробовала макросом свернуть файл, а по окончании цикла развернуть его снова.
Вроде бы нормально, но хочется и другие варианты расмотреть.
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362374
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaShocker.Pro,

Дело в том, что сейчас это не имеет значения, потому что скрипт это уже все выполняет.

Но вообще, конечно же попробовать стоит. :)
Я обязательно учту данный вариант.
Мягше нужно быть, гибчее... А чтоб не мерцало hidden
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362483
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, девушка, фотку обешали? Извольте!
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362525
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцор ПасадобляКстати, девушка, фотку обешали? Извольте!

Не боишься? Девушка программирует.... вдруг она в свитере.... и с бородой....
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362551
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТанцор ПасадобляКстати, девушка, фотку обешали? Извольте!

Не боишься? Девушка программирует.... вдруг она в свитере.... и с бородой....
Мне она понравилась.
Надеюсь увидеть обезображенное интеллектом лицо...
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362937
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, с чего вы взяли, что если девушка программирует, то она "в свитере.... и с бородой....".:)
Могу вам сказать на это только одно, вы глубоко ошибаетесь...
А своё фото я не обещала
И потом, какие хитренькие, от меня фото ждёте, а сами что...? ))
...
Рейтинг: 0 / 0
Программирование на VBA
    #36362941
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_AidaИ потом, какие хитренькие, от меня фото ждёте, а сами что...? ))

Лично у меня - есть в профиле
...
Рейтинг: 0 / 0
Программирование на VBA
    #36363081
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, раз уж вы не отказались от макроса, еще немного поумничаю:
Код: plaintext
Dim ЕдИзм, КолвоВсего, Исх, ДатаЗаявки, Подразделение, НаправлениеРасхода, НаправлениеДеят, СтатусЗаявки As String

Если вы думаете, что таким способом определяете все переменные как String - вы заблуждаетесь
...
Рейтинг: 0 / 0
Программирование на VBA
    #36364431
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Действительно, я могу ошибаться. Если можно описать переменные наиболее правильно, вы покажите, я вам буду очень благодарна :)
...
Рейтинг: 0 / 0
Программирование на VBA
    #36364452
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K_Aida,
нужно после каждой переменной указывать As String
Вы указали только после последней, значит, последняя это String , а все остальные переменные имеют "неопределенный тип данных"
Код: plaintext
1.
Dim ЕдИзм As String, КолвоВсего As String, Исх As String, ДатаЗаявки As String, Подразделение As String, НаправлениеРасхода As String, НаправлениеДеят As String, СтатусЗаявки As String
или
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim ЕдИзм  As String
Dim КолвоВсего As String
Dim Исх As String
Dim ДатаЗаявки As String
Dim Подразделение  As String
Dim НаправлениеРасхода  As String
Dim НаправлениеДеят As String
Dim СтатусЗаявки As String
...
Рейтинг: 0 / 0
Программирование на VBA
    #36364940
K_Aida
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Михаил.,

Ага, спасибочки :)
...
Рейтинг: 0 / 0
106 сообщений из 106, показаны все 5 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Программирование на VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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