Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2009, 06:28   #1
GWolf
Пользователь
 
Регистрация: 16.10.2008
Сообщений: 22
По умолчанию Перемещение листа в другую книгу

Пишу так:

For i = LBound(arrList1) To UBound(arrList1)
Workbooks.Open Filename:=filPath & "\" & arrList1(i) _
, ReadOnly:=True
If i = 4 Then
Stop
ElseIf i = 3 Then
Stop
Else
For Each wks In ActiveWorkbook.Worksheets
If wks.Name <> "_" Then
nSC = 0
With Workbooks(filNameTo & ".xls")

Sheets(wks.Name).Move .Sheets(.Sheets.Count) - Эта строка невыполняется! Пишет Subscribe of range, а в чем дело - непойму.

End With
End If
Next
Stop
End If
Next i
GWolf вне форума Ответить с цитированием
Старый 03.03.2009, 08:14   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Не совсем понятно, что Вы хотите сделать. Может быть я не так понимаю, но если LBound(arrList1) всегда меньше, чем 3 (тем более 4), то можно организовать цикл
Код:
For i = LBound(arrList1) To 2
и не проверять, что следующая книга в массиве имеет индекс 3 или 4, т.к. после проверки у Вас стоит Stop, т.е. примерно так:
Код:
Sub MoveSheets()

    For i = LBound(arrList1) To 2
        Workbooks.Open Filename:=filPath & "\" & arrList1(i), ReadOnly:=True
        For Each wks In ActiveWorkbook.Worksheets
            If wks.Name <> "_" Then
                nSC = 0
                With Workbooks(filNameTo & ".xls")
                    Sheets(wks.Name).Move after:=.Sheets(.Sheets.Count)
                End With
            End If
        Next
        Exit For
    Next i
    
End Sub
Предупреждение "Subscribe of range" означает только одно: либо нет такого листа, либо нет такой книги. Проверьте соответствие всех имен.
P.S. Так же, после того, как мы открыли и проверили очередную книгу из массива, то нужно ли ее оставлять открытой?
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 03.03.2009 в 10:00. Причина: Добавлено
SAS888 вне форума Ответить с цитированием
Старый 04.03.2009, 10:30   #3
GWolf
Пользователь
 
Регистрация: 16.10.2008
Сообщений: 22
По умолчанию

Уважаемый SAS888! Дело в том, что у меня ругается на конструкцию

Sheets(wks.Name).Move after:=.Sheets(.Sheets.Count)

т.е. я так понимаю глючит Move after:
а как с этим разобратся - незнаю.
GWolf вне форума Ответить с цитированием
Старый 04.03.2009, 10:45   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Как-то, у меня всплывала проблема с созданием нового листа, расположенного в конце книги. Конструкция
Код:
Sheets.Add After:=Sheets(Sheets.Count)
отказывалась работать. При чем в другой книге она работает без проблем. Объяснений так и не нашел. Вышел из положения, применив две команды:
Код:
Sheets.Add: ActiveSheet.Move After:=Sheets(Sheets.Count)
Как не странно - сработало. Предлагаю попробовать как-нибудь по-другому. Например, скопировать лист в другую книгу, затем удалить из исходной. Или что-нибудь другое в два хода. Поэкспериментируйте. Я списываю это на ошибки в Excel.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 04.03.2009, 14:53   #5
Волк
Форумчанин
 
Аватар для Волк
 
Регистрация: 04.02.2009
Сообщений: 156
По умолчанию

Sheets("Заказ").Select
Sheets("Заказ").Copy
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
Волк вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение обьекта! TRIO JavaScript, Ajax 1 22.12.2008 19:49
Копирование листа в другую книгу макросом xamillion Microsoft Office Excel 9 11.10.2008 08:59
Перемещение данных Мария100684 Microsoft Office Access 6 26.09.2008 03:45
Автоматическое перемещение Kirik JavaScript, Ajax 4 16.11.2007 17:42
добавление листа в книгу по условию Sasha K Microsoft Office Excel 4 30.01.2007 15:44