powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование со скрытого листа
11 сообщений из 11, страница 1 из 1
Копирование со скрытого листа
    #36202589
Татик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть макрос
Sub test()

Sheets("TOTAL").Visible = True

Sheets("TOTAL").Select
Sheets("TOTAL").Range("A20:AA2000").Select
Selection.ClearContents
Range("A1").Select

'Sheets("Вопросы").Visible = True

Sheets("Вопросы").Select
For Each r In Range("F:F").Rows
If r.Cells(, 1) = "FALSE" Then
r.Cells(, -3).Copy

Sheets("TOTAL").Select
Range("A1").Select

a = 20
b = 2
Do
If Worksheets("TOTAL").Cells(a, b) = "" Then Exit Do
a = a + 2

Loop
ActiveCell(a, b).Select
ActiveSheet.Paste

End If
Next r

End Sub

Стоит скрыть лист "Вопросы" перестает дальше выполнять действия
если этот лист отобразить и закрыть команду 'Sheets("Вопросы").Visible = True - все работает.
Почему не хочет работать со скрытым листом, можа где ошибка.
Ошибку не выдает тупо останавливается.
помогите плиз великие програмисты!!!
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36202630
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо использовать метод .Select и объект Selection
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36202697
Татик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,
ой, а как надо то, я по другому не умею...(((
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36202871
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так попробуй:
Код: plaintext
1.
2.
3.
For Each r In Sheets("Вопросы").Range("F:F").Rows
If r.Cells(,  1 ) = "FALSE" Then
r.Cells(, - 3 ).Copy
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36202896
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И вообще тут можно пооптимизировать (закомментированное лишнее, можно выкинуть):
Код: 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.
Sub test2()

Sheets("TOTAL").Visible = True

Sheets("TOTAL").Select
Sheets("TOTAL").Range("A20:AA2000").Select
Selection.ClearContents
Range("A1").Select

'Sheets("Вопросы").Visible = True

'Sheets("Вопросы").Select
For Each r In Application.Intersect(Worksheets("Вопросы").Range("F:F"), Worksheets("Вопросы").UsedRange)
If r.Cells(,  1 ) = "FALSE" Then
'r.Cells(, -3).Copy 'это больше вообще не нужно

'Sheets("TOTAL").Select
'Range("A1").Select

a =  20 
b =  2 
Do
If Worksheets("TOTAL").Cells(a, b) = "" Then Exit Do
a = a +  2 
Loop

r.Cells(, - 3 ).Copy Sheets("TOTAL").Cells(a, b)
'ActiveSheet.Paste 'это больше вообще не нужно

End If
Next r

End Sub
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36202906
Татик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,
Ух тыыыыыы заработало!!!
Большущее спасибо! хочу быть такой же умной!

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

еще раз спасибо! обнимаю
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36203221
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, интересный эффект, может кто объяснит - дома последний код работал на ура, сегодня на работе не пашет. Заменил
If r.Cells(, 1) = "FALSE" Then
на
If r.Cells(, 1) = "False" Then
заработало! Причём в F6 именно FALSE!
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36203271
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Татиктолько теперь после запуска макросов перед этим, этот гад отказывается работать

Попробуй в начале кода определить переменные:
Dim a, b As Integer
Dim r As Range
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36203283
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше
Dim a, b As Long
(если рядов больше 32767 предвидится)
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36205484
Фотография Letter_Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Кстати, интересный эффект, может кто объяснит - дома последний код работал на ура, сегодня на работе не пашет. Заменил
If r.Cells(, 1) = "FALSE" Then
на
If r.Cells(, 1) = "False" Then
заработало! Причём в F6 именно FALSE!Используй False без кавычек. Так будет правильно.
...
Рейтинг: 0 / 0
Копирование со скрытого листа
    #36206319
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Лучше
Dim a, b As Long
(если рядов больше 32767 предвидится)

Это не определяет a и b как Long
Это определяет a как variant и b как Long
Чтобы определить обе переменные как Long
Код: plaintext
Dim a As Long, b As Long
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование со скрытого листа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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