Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Отсутствующие листы / 4 сообщений из 4, страница 1 из 1
23.09.2011, 16:39
    #37453888
khvostatyy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсутствующие листы
Всем привет!

В этом коде копируется диапазон значений:

Код: 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.
Private Sub CommandButton1_Click()
Dim TempWb As Workbook
Dim BazaSht As Worksheet
Dim iPath As String
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
Set BazaSht = ActiveSheet
iPath = ActiveWorkbook.Path & "\"
Set TempWb = Workbooks.Open(Filename:="Before.xlsx", UpdateLinks:=False, ReadOnly:=True)

TempWb.Sheets("Лист1").Range("A5:F300").Copy
BazaSht.Range("H1").PasteSpecial xlValues

TempWb.Sheets("Лист2").Range("A5:F300").Copy
BazaSht.Range("H301").PasteSpecial xlValues

TempWb.Sheets("Лист3").Range("A5:F300").Copy
BazaSht.Range("H601").PasteSpecial xlValues

TempWb.Close saveChanges:=False
.Calculation = xlAutomatic
.ScreenUpdating = True
End With

End Sub


Но если отстутствует какой-нибудь лист, то выдается ошибка Subscript out of range.
Помогите пожалуйста поставить обработчик, чтобы если листа нет, то просто не копировал. Спасибо!
...
Рейтинг: 0 / 0
23.09.2011, 16:47
    #37453916
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсутствующие листы
Перед кодом, который может вызвать ошибку:
On Error Resume Next
сразу после этого кода
On Error Goto 0

не злоупотребляйте
...
Рейтинг: 0 / 0
23.09.2011, 17:07
    #37453964
khvostatyy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсутствующие листы
Shocker.Pro,

Спасибо.
Но если какого либо листа нет, то в диапазон, куда должны были копироваться его значения, копируются значения предыдущего листа. То есть значения дублируются. Это можно как-нибудь исправить?
...
Рейтинг: 0 / 0
23.09.2011, 17:45
    #37454100
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсутствующие листы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
On Error Resume Next
TempWb.Sheets("Лист1").Range("A5:F300").Copy
If Err= 0  Then BazaSht.Range("H1").PasteSpecial xlValues

Err.Clear
TempWb.Sheets("Лист2").Range("A5:F300").Copy
If Err= 0  Then BazaSht.Range("H301").PasteSpecial xlValues

Err.Clear
TempWb.Sheets("Лист3").Range("A5:F300").Copy
If Err= 0  Then BazaSht.Range("H601").PasteSpecial xlValues
On Error Goto  0 
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Отсутствующие листы / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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