Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Workbooks().Activate не работает в 2010 Офисе / 8 сообщений из 8, страница 1 из 1
21.11.2011, 12:50
    #37536619
Hamster_Rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Workbooks().Activate не работает в 2010 Офисе
При переходе на новый офис (2010) с старого (2003), не работает
часть скрипта:
переменная определена, как - Dim s3 As String
Код: plaintext
1.
2.
3.
Workbooks.Open fail
s3 = Dir(fail)

Workbooks(s3).Activate
Выдает ошибку -
Код: plaintext
1.
Run-time error  1004 :
Method Active of object Woorkbook failed
...
Рейтинг: 0 / 0
21.11.2011, 12:55
    #37536630
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Workbooks().Activate не работает в 2010 Офисе
Код: plaintext
1.
2.
3.
4.
Dim s3 As WorkBook
Set s3=Workbooks.Open(fail)

...
s3.Activate
...
Рейтинг: 0 / 0
21.11.2011, 13:26
    #37536737
Hamster_Rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Workbooks().Activate не работает в 2010 Офисе
выполнилось первый раз....
при повторном открытии файла, появилась таже ошибка...
...
Рейтинг: 0 / 0
21.11.2011, 13:58
    #37536828
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Workbooks().Activate не работает в 2010 Офисе
все зависит от дальнейшего кода.
Перед повторным открытием надо очистить s3

Если вы не очень шарите в ООП, то сделайте так:
Код: plaintext
1.
2.
3.
4.
5.
Dim s3 As WorkBook
Set s3=Workbooks.Open(fail)

...
s3.Activate
Set s3=Nothing
я просто вам оставил указатель для дальнейшего использования
...
Рейтинг: 0 / 0
21.11.2011, 14:24
    #37536889
Hamster_Rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Workbooks().Activate не работает в 2010 Офисе
Код: 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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
Sub FormatTables(fail As String)
Dim papka, pdir, s4 As String
Dim d_month As Variant
Dim s3 As Workbook



pdir = ThisWorkbook.Path
d_month = ThisWorkbook.Sheets("1").Cells( 1 ,  3 ).Value
papka = ThisWorkbook.Sheets("1").Cells( 1 ,  1 ).Value
Workbooks.Open fail
Set s3 = Workbooks.Open(fail)
's3 = Dir(fail)
'Workbooks(s3).Open
'Windows(s3).Activate
s3.Activate
Set s3 = Nothing
'Workbooks(s3).Activate
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("ДатаОтчета")
        .Orientation = xlPageField
        .Position =  1 
    End With
'    ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("ДатаОтчета"). _
 '       CurrentPage = "01/10/2010"
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("НаименТовара")
        .Orientation = xlRowField
        .Position =  1 
    End With
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Месторасп")
        .Orientation = xlColumnField
        .Position =  1 
    End With
    ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _
        ("СводнаяТаблица1").PivotFields("Количество"), "Количество по полю Количество" _
        , xlCount
    Range("B6").Select
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields( _
        "Количество по полю Количество")
        .Caption = "Сумма по полю Количество"
        .Function = xlSum
    End With
    Cells.Select
    Selection.Copy
    Workbooks.Add
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B5").Select
    ActiveWindow.FreezePanes = True
    Range("B4:AB4").Select
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation =  90 
        .AddIndent = False
        .IndentLevel =  0 
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Columns("AA:AA").Select
    Selection.Delete Shift:=xlToLeft
    Rows("5:5").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$5:$AB$144").AutoFilter Field:= 27 , Criteria1:="="
    Rows("8:8").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.Range("$A$5:$AB$115").AutoFilter Field:= 27 

    Cells.Select
    Cells.EntireColumn.AutoFit
If fail = pdir & "\" & d_month & "\" & papka & "\КХ\Svod_kh.xls" Then
s4 = pdir & "\" & d_month & "\" & papka & "\КХ\свод по препаратам.xls"
Else: s4 = pdir & "\" & d_month & "\" & papka & "\КФ\свод по препаратам.xls"
End If
If Dir(s4) <> "" Then Kill s4
    ActiveWorkbook.SaveAs Filename:= _
        s4 _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWorkbook.Close
    'Workbooks(s3).Close savechanges:=False
    s3.Close savechanges:=False

End Sub

Сделал как Вы указали, ошибка появилась на последней строчке(закрытие файла)....
Ваша правда, я не силен в Объектно-ориентированное программирование..
...
Рейтинг: 0 / 0
21.11.2011, 14:35
    #37536920
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Workbooks().Activate не работает в 2010 Офисе
В приведенном коде строку
Код: plaintext
Set s3 = Nothing
надо перенести после
Код: plaintext
s3.Close savechanges:=False
а то в момент ее выполнения s3 ничему не равен

Вместо ActiveWorkbook лучше тогда везде использовать s3
...
Рейтинг: 0 / 0
21.11.2011, 14:50
    #37536956
Hamster_Rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Workbooks().Activate не работает в 2010 Офисе
При Вашем варианте, обнулять множество s3, после закрытия файла, снова выпадает ошибка...
...
Рейтинг: 0 / 0
21.11.2011, 15:28
    #37537035
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Workbooks().Activate не работает в 2010 Офисе
Полностью приведите исправленный код, какая ошибка и на какой строке.

(P.S. Простыни прячьте под спойлер, а строки можно выделять с помощью ==> (см. faq )
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Workbooks().Activate не работает в 2010 Офисе / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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