powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Workbooks().Activate не работает в 2010 Офисе
8 сообщений из 8, страница 1 из 1
Workbooks().Activate не работает в 2010 Офисе
    #37536619
Hamster_Rulik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При переходе на новый офис (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
Workbooks().Activate не работает в 2010 Офисе
    #37536630
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
Dim s3 As WorkBook
Set s3=Workbooks.Open(fail)

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

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

...
s3.Activate
Set s3=Nothing
я просто вам оставил указатель для дальнейшего использования
...
Рейтинг: 0 / 0
Workbooks().Activate не работает в 2010 Офисе
    #37536889
Hamster_Rulik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
Workbooks().Activate не работает в 2010 Офисе
    #37536920
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приведенном коде строку
Код: plaintext
Set s3 = Nothing
надо перенести после
Код: plaintext
s3.Close savechanges:=False
а то в момент ее выполнения s3 ничему не равен

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

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


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