Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :(( / 25 сообщений из 29, страница 1 из 2
19.10.2008, 15:51
    #35602932
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Есть такая задача: Много xls файлов необходимо переделать (изменить несколько формул на двух листах). Сама задача кое-как решена, а вот с производительностью - туго. На этапе тестирования (objExcel, в смысле Application, был Visible=True, вроде все в норме), но как только для конечной версии я поставил False, то производительность упала раз в 5. Попробовал оставить приложение видимым, но свернул в трей - такая же, извините, хрень! В чем может быть проблема? Всю голову сломал!! Помогите люди добрые, можить кто с таким уже сталкивался (перелопатил кучу форумов-ничего не нашел - наверное я где-то накосячил)
Код: 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.
Dim objExcel As Excel.Application
    Dim objBook As Excel.Workbook
    
    F =  0 
    G =  0 
    MyFile1 = Dir(Dir1 & "\\*.xls")
    
    Do While MyFile1 <> ""
        G = G +  1 
        MyFile1 = Dir
    Loop
    If G <>  0  Then
        Set objExcel = CreateObject("Excel.Application")
        objExcel.Visible = True
       
  
   
        objExcel.DisplayAlerts = False
        objExcel.WindowState = xlMinimized
        If Dir(Dir1 & "\ReMake\", vbDirectory) = "" Then
            MkDir Dir1 & "\ReMake\"
        End If
    End If
    MyFile = Dir(Dir1 & "\\*.xls")
Do While MyFile <> ""
    Label3.Visible = True
    Label4.Visible = True
    Label5.Visible = True
    Label6.Visible = True
    Label3 = F
    Label6 = G
    
    F = F +  1 
    
    Set objBook = objExcel.Workbooks.Open(Dir1 & "\\" & MyFile, , False)
    '-------------------Ôîðìà3------------------------
   
    objBook.Sheets("Ôîðìà 3").Unprotect ("123")
    objBook.Sheets("Ôîðìà 3").Range("T15:T58").FormulaR1C1 = "=IF(AND(OR(RC3<>"""",RC4<>""""),RC1=1,R8C10=""ÄÀ""),IF(RC5=1,RC[17]/15,IF(RC5=2,RC[17]/16)),"""")"
 
    
    objBook.Sheets("Ôîðìà 3").Range("Y15:Y58").FormulaR1C1 = "=IF(AND(RC5=2,RC[-16]=4),1,0)"
   
    
    objBook.Sheets("Ôîðìà 3").Range("Z15:Z58").FormulaR1C1 = "=IF(AND(RC5=1,RC[-16]=3),1,IF(AND(RC5=2,RC[-16]=1),1,0))"
   
    objBook.Sheets("Ôîðìà 3").Protect ("123")
    '-------------------Ôîðìà2------------------------
 
    objBook.Sheets("Ôîðìà 2").Unprotect ("123")
 
    objBook.Sheets("Ôîðìà 2").Range("BH14").AutoFill Destination:=objBook.Sheets("Ôîðìà 2").Range("BH14:BH57"), Type:=xlFillDefault
    'Set Selection = Nothing
    objBook.Sheets("Ôîðìà 2").Protect ("123")
    
    
    
  
    objBook.SaveAs FileName:=Dir1 & "\ReMake\" & MyFile, FileFormat:=xlExcel9795
    objBook.Close
    Set objBook = Nothing
    
    Label3 = F
    Label6 = G
    MyFile = Dir
Loop
If G <>  0  Then
        objExcel.Application.Quit
        Set objExcel = Nothing
End If
If F <>  0  Then
    a = MsgBox("Ôîðìû óäà÷íî èñïðàâëåíû â êîë-âå: " & F & " øò.", , "Èíôî")
Else
    a = MsgBox("Íè îäíîé ôîðìû íå íàéäåíî", , "Èíôî")
End If

End Sub
...
Рейтинг: 0 / 0
19.10.2008, 16:18
    #35602954
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Я помню у меня был случай с производительностью, при

Код: plaintext
 MyFile1 = Dir(Dir1 & "\\*.xls")

когда Excel файл был выделенным или галочка "разметка страницы"
...
Рейтинг: 0 / 0
19.10.2008, 16:32
    #35602959
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Valeriu,

Разметки страницы нет (вид-обычный)
Насчет
Код: plaintext
1.
MyFile1 = Dir(Dir1 & "\\*.xls")
Это выполняется для подсчета кол-ва xls до начала тормозов (летает). Тормоза (по F8) наступают во время присвоения полям формул, например:
Код: plaintext
1.
    objBook.Sheets("Ôîðìà 3").Range("T15:T58").FormulaR1C1 = "=IF(AND(OR(RC3<>"""",RC4<>""""),RC1=1,R8C10=""ÄÀ""),IF(RC5=1,RC[17]/15,IF(RC5=2,RC[17]/16)),"""")"
Вопрос в том, что при видимом приложении Ёкселя все делается достаточно шустро, но при этом, естественно наблюдается очень сильное мельтешение, что обычному юзеру не очень понравится. Но как только Ёксель минимизируешь или делаешь невидимым, почему-то все делается раз в 5 медленнее (если не больше). Я не могу понять от чего это зависит, ведь при видимом приложении все летает! Принудительная установка приоритета Ёкселя в высокий ничего не дает. Я скоро чёкнусь! :)
...
Рейтинг: 0 / 0
20.10.2008, 10:20
    #35603594
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
> Автор: MxSv
> Я скоро чёкнусь! :)


Отключи пересчет формул, перед изменением, и включай перед сохранением

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2008, 14:07
    #35604269
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Игорь Горбонос,

Спасибо за совет, только появляется ошибка: "Run-time error 1004 Нельзя установить свойство Calculation класса Application".

Код: plaintext
1.
2.
3.
4.
 
objExcel.Visible = False 'проходит
objExcel.DisplayAlerts = False 'проходит
objExcel.Calculation = xlManual 'ОШИБКА
objExcel.CalculateBeforeSave = True
...
Рейтинг: 0 / 0
20.10.2008, 14:42
    #35604391
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
> Автор: MxSv
> Игорь Горбонос,
>
> Спасибо за совет, только появляется ошибка: "Run-time error 1004 Нельзя установить
> свойство Calculation класса Application".
> objExcel.Calculation = xlManual 'ОШИБКА

Странно, макрос записывает с этой константой, а в свойствах ссылается на эту:
Const xlCalculationManual = -4135 (&HFFFFEFD9)
Member of Excel.XlCalculation
Хотя по значениям они одинаковы, может у тебя эта константа "перебивается" одноименной, но
с другим значением?

Попробуй ещё свойство листа:
Property EnableCalculation As Boolean
Member of Excel.Worksheet

Но мне свойство листа не очень нравится, т.к. в моей практике, формулы, практически
всегда, не ограничиваются одной книгой.

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2008, 14:58
    #35604458
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Игорь Горбонос
Странно, макрос записывает с этой константой, а в свойствах ссылается на эту:
Const xlCalculationManual = -4135 (&HFFFFEFD9)
Member of Excel.XlCalculation
Хотя по значениям они одинаковы, может у тебя эта константа "перебивается" одноименной, но
с другим значением?

Значение как раз -4135 (при дебаге смотрел)

Код: plaintext
1.
objBook.Sheets("Форма 3").EnableCalculation = False
Не помогло :(( Остались те же тормоза.
Почему при видимом приложении, при обработке всех событий, при перерисовке окна все работает в РАЗЫ быстрее, чем при скрытом окне, половине реакций в False.
...
Рейтинг: 0 / 0
20.10.2008, 15:03
    #35604471
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
> Автор: MxSv


Если можешь, выложи код или пример, попробую посмотреть. Так сказать что-либо сложно.

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2008, 15:10
    #35604492
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Игорь Горбонос,
...
Рейтинг: 0 / 0
20.10.2008, 15:18
    #35604517
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Это VB или VBA? Так, из интереса.
...
Рейтинг: 0 / 0
20.10.2008, 15:22
    #35604529
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
> Автор: MxSv
> Игорь Горбонос,
>
>
> К сообщению приложен файл (ОН.RAR): cкачать. Размер - 2Kb


А шаблон ексельного файла?

И по коду:
1 - подключи в референсах библиотеку Екселя и объяви переменные не как Variant и Object, а
как было закоментированно.
2 - Объяви себе ещё переменную типа Sheet и от неё начинай назначать формулы, а не от
книги
Напимер так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim sh As Excel.Worksheet
    Set sh = objBook.Sheets("Форма 3")
    With sh
        .Unprotect ("123")
        .Range("T15:T58").FormulaR1C1 = 
"=IF(AND(OR(RC3<>"""",RC4<>""""),RC1=1,R8C10=""ДА""),IF(RC5=1,RC[17]/15,IF(RC5=2,RC[17]/16)),"""")"

        .Range("Y15:Y58").FormulaR1C1 = "=IF(AND(RC5=2,RC[-16]=4),1,0)"

        .Range("Z15:Z58").FormulaR1C1 = 
"=IF(AND(RC5=1,RC[-16]=3),1,IF(AND(RC5=2,RC[-16]=1),1,0))"
        .Protect ("123")
    End With
и перед Public DBPath As String поставь Option Explicit и пообъявляй все переменные

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2008, 15:26
    #35604542
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
> Автор: VladConn
> Это VB или VBA? Так, из интереса.


VB

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2008, 15:35
    #35604573
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Еще, поставьте Option Explicit и замените

Label3 = F
Label6 = G

на

Label3.Value = F
Label6.Value = G

Если ваш код внутри книги, то зачем создавать еще один Excel:

Set objExcel = CreateObject("Excel.Application") ?

Можно обойтись и так:

Set objExcel = ThisWorkbook.Application

Или берите GetObject, а не CreateObject.


Теперь, полагая, что ваш objExcel декларирован внутри некоей процедуры, все тело которой, за исключением заголовка почему-то, вы показали, то вот это:

If G <> 0 Then
objExcel.Application.Quit
Set objExcel = Nothing
End If

писать не надо.

Достаточно так:

If G <> 0 Then
objExcel.Application.Quit
End If

Что, скорее всего, верно и в отношении Set objBook = Nothing

Вне вашей процедуры это добро само установится в Nothing.

И еще вопрос: если вы в цикле пишете,
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True

то где в цикле у вас

Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False?
...
Рейтинг: 0 / 0
20.10.2008, 15:46
    #35604610
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Игорь Горбонос
И по коду:
1 - подключи в референсах библиотеку Екселя и объяви переменные не как Variant и Object, а
как было закоментированно.

Программка будет раздаваться многим пользователям для коррекции ранее выданных файлов, поэтому не хотелось бы привязываться к определенной версии Екселя (правда придется все используемые константы еще определить самому (та же xlCalculationManual = -4135). Ведь, насколько я понимаю, подключив Библиотеку версии 9.0, программка не заработает ни на более старых, ни на более новых версиях (уж извините, новичок в программировании :))
п.2 сейчас попробую
...
Рейтинг: 0 / 0
20.10.2008, 15:53
    #35604639
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
На более новых версиях заработает
...
Рейтинг: 0 / 0
20.10.2008, 15:55
    #35604647
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
И вообще-то, для таких случаев предусмотрен Setup. Есть такая хитрость! Тогда на любой машине заработает, если не случится Hell DLL, что маловероятно.

Так вы надеетесь раздать народу вашу программу без инсталляции?
...
Рейтинг: 0 / 0
20.10.2008, 15:58
    #35604667
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
> Автор: MxSv
> Программка будет раздаваться многим пользователям для коррекции ранее выданных файлов, поэтому не хотелось бы
> привязываться к определенной версии Екселя (правда придется все используемые константы еще определить самому (та же
> xlCalculationManual = -4135). Ведь, насколько я понимаю, подключив Библиотеку версии 9.0, программка не заработает ни
> на более старых, ни на более новых версиях (уж извините, новичок в программировании :))

У меня програмка, кочевала с таким референсом с 2000 по 2003 офис, никаких проблем не было, но не знаю как сейчас в
новых версиях, хотя по моему в 2007 офисе должна работать, т.к. ничего экзотического не используется

взял пустой файл, назхвал два листа соответственно Форма 2 и Форма 3, "размножил" его до 392 штук и запустил, программа
обработала все файлы на 0:03:45

Код: 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.
89.
Private Sub cmdTxtPath_Click()
    'Dim objExcel, objBook As Object
    Dim objExcel As Excel.Application
    Dim objBook As Excel.Workbook
    Dim sh As Excel.Worksheet
    Dim F As Long
    Dim G As Long
    Dim MyFile1 As String
    Dim MyFile As String
    Dim a As Integer
    Dim dtStart As Date
    dtStart = Now()
    F =  0 
    G =  0 
    MyFile1 = Dir(Dir1 & "\\*.xls")

    Do While MyFile1 <> ""
        G = G +  1 
        MyFile1 = Dir
    Loop

    If G <>  0  Then
        Set objExcel = CreateObject("Excel.Application")
        With objExcel
            .Visible = False
            .DisplayAlerts = False
            .ScreenUpdating = False
        End With
       ' objExcel.WindowState = xlMinimized
        If Dir(Dir1 & "\ReMake\", vbDirectory) = "" Then
            MkDir Dir1 & "\ReMake\"
        End If
    End If
    Label3.Visible = True
    Label4.Visible = True
    Label5.Visible = True
    Label6.Visible = True
    Label3.Caption = CStr(F)
    Label6.Caption = CStr(G)

    MyFile = Dir(Dir1 & "\\*.xls")
Do While MyFile <> ""
    F = F +  1 
    Set objBook = objExcel.Workbooks.Open(Dir1 & "\\" & MyFile, , False)

    '-------------------Форма3------------------------
    'objBook.Sheets("Форма 3").EnableCalculation = False
    Set sh = objBook.Sheets("Форма 3")
    With sh
        .Unprotect ("123")
        .Range("T15:T58").FormulaR1C1 = 
"=IF(AND(OR(RC3<>"""",RC4<>""""),RC1=1,R8C10=""ДА""),IF(RC5=1,RC[17]/15,IF(RC5=2,RC[17]/16)),"""")"

        .Range("Y15:Y58").FormulaR1C1 = "=IF(AND(RC5=2,RC[-16]=4),1,0)"

        .Range("Z15:Z58").FormulaR1C1 = "=IF(AND(RC5=1,RC[-16]=3),1,IF(AND(RC5=2,RC[-16]=1),1,0))"
        .Protect ("123")
    End With

    '-------------------Форма2------------------------
    'objBook.Sheets("Форма 2").EnableCalculation = False
    Set sh = objBook.Sheets("Форма 2")
    With sh
        .Unprotect ("123")
        .Range("BH14").AutoFill Destination:=.Range("BH14:BH57"), Type:=xlFillDefault
        .Protect ("123")
    End With

    Set sh = Nothing
    objBook.SaveAs FileName:=Dir1 & "\ReMake\" & MyFile, FileFormat:=xlExcel9795
    objBook.Close
    Set objBook = Nothing

    Label3.Caption = CStr(F)
    MyFile = Dir
Loop
If G <>  0  Then
    Set sh = Nothing
    Set objBook = Nothing
    objExcel.Application.Quit
    Set objExcel = Nothing
End If
MsgBox CStr(CDate(Now() - dtStart))
If F <>  0  Then
    MsgBox "Формы удачно исправлены в кол-ве: " & F & " шт.", , "Инфо"
Else
    MsgBox "Ни одной формы не найдено", , "Инфо"
End If

End Sub

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2008, 16:05
    #35604693
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
VladConn, спасибо за советы

VladConn
Если ваш код внутри книги, то зачем создавать еще один Excel:

Set objExcel = CreateObject("Excel.Application") ?

Это VB, а не VBA, как было сказано выше. Код не в книге.
У пользователя во время запуска может быть уже открыть Ёксель, поэтому запускаю новый экземпляр сразу (писать проверку на то, открыт Ёксель или нет, считаю ненужным)

VladConn
Теперь, полагая, что ваш objExcel декларирован внутри некоей процедуры, все тело которой, за исключением заголовка почему-то, вы показали, то вот это:

If G <> 0 Then
objExcel.Application.Quit
Set objExcel = Nothing
End If

писать не надо.

Достаточно так:

If G <> 0 Then
objExcel.Application.Quit
End If

Я показал не только тело :)) Выложен весь проектик (в архиве)
Насчет Set objExcel = Nothing: предпочитаю всегда принудительно освобождать ресурсы (вреда от этого не будет). Часто приходится изпользовать свои же готовые проектики для других целей, где objExcel может быть глобальной переменной, а оставлять висеть Ёксель в процессах вроде не очень хорошо

VladConn
И еще вопрос: если вы в цикле пишете,
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True

то где в цикле у вас

Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False?


См. выше
...
Рейтинг: 0 / 0
20.10.2008, 16:08
    #35604701
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
VladConn,

VladConn
И вообще-то, для таких случаев предусмотрен Setup. Есть такая хитрость! Тогда на любой машине заработает, если не случится Hell DLL, что маловероятно.

Так вы надеетесь раздать народу вашу программу без инсталляции?

Не считаю эту программку достойной инсталляции :)
...
Рейтинг: 0 / 0
20.10.2008, 16:15
    #35604725
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
> Автор: MxSv
> К сообщению приложен файл (XLS.rar): cкачать. Размер - 18Kb


твой шаблон размножил до 300 штук, отработал за 0:04:04
Это нормально? или тебе нужно быстрее?

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2008, 16:22
    #35604750
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
Игорь Горбонос,

автор
твой шаблон размножил до 300 штук, отработал за 0:04:04
Это нормально? или тебе нужно быстрее?

Во первых, спасибо за корректировки кода.
Далее: Скорость осталась такая же как и была. Файлов может быть порядка десятков тысяч :(, поэтому хотелось бы побыстрее.

Я тестил на 6 файлах, так вот по таймеру objExcel.Visible=False 26 сек, а objExcel.Visible=True 4сек!!!!! Я думаю что и при Вашей выборке в 300 шт результат будет намного меньше, чем 0:04:04. Блин, я просто не понимаю, в чем засада!!!
...
Рейтинг: 0 / 0
20.10.2008, 16:38
    #35604788
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
> Автор: MxSv
> Во первых, спасибо за корректировки кода.
> Далее: Скорость осталась такая же как и была. Файлов может быть порядка десятков тысяч :(, поэтому хотелось бы
> побыстрее.

на таком количестве, врядли получится быстро. Попробуй посмотреть не в сторону корректировки готового файла, а в сторону
распространения изначально "правильного" шаблона, что-бы не нужно было исправлять.

>
> Я тестил на 6 файлах, так вот по таймеру objExcel.Visible=False 26 сек, а objExcel.Visible=True 4сек!!!!! Я думаю
> что и при Вашей выборке в 300 шт результат будет намного меньше, чем 0:04:04. Блин, я просто не понимаю, в чем
> засада!!!


при установке objExcel.Visible=True результат:
---------------------------
Project1
---------------------------
0:04:19
---------------------------
ОК
---------------------------


--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2008, 16:51
    #35604829
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
автор
на таком количестве, врядли получится быстро. Попробуй посмотреть не в сторону корректировки готового файла, а в сторону
распространения изначально "правильного" шаблона, что-бы не нужно было исправлять.

Как говорится, от косяков не зарекайся! Тем более обидно, что ошибся не я, а разработчики анкетирования. (изначально у них были ошибки в ответах и в системе оценивания)

автор
при установке objExcel.Visible=True результат:
---------------------------
Project1
---------------------------
0:04:19
---------------------------
ОК
---------------------------


Очень интересно! У Вас время почти одинаковое.
Что за ......! Сейчас тоже натравлю на 300 файлов...
...
Рейтинг: 0 / 0
20.10.2008, 16:59
    #35604845
MxSv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
336 файлов, PVI 3Гг, 256Mb, Visible=True:Time=0:03:50
Причем, как только делаешь активным любое другое окно, а не Ёксель, процесс обработки форм засыпает (скорость падает ужасно). Делаешь активным Ёксель-опять летает!
...
Рейтинг: 0 / 0
20.10.2008, 17:18
    #35604917
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :((
при установке objExcel.Visible=False и введения новой переменной в которой хранится путь к папке sPath = Dir1.Path результат(ну и наверное самого главного, выключение музыки :) ):
---------------------------
Project1
---------------------------
0:03:22
---------------------------
ОК
---------------------------


переделал ещё немного, в варианте с FSO
---------------------------
Project1
---------------------------
0:02:16
---------------------------
ОК
---------------------------
В оригинальном варианте:
---------------------------
Project1
---------------------------
0:02:10
---------------------------
ОК
---------------------------

Во время работы комп не трогал
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите, плз с Ёкселем (Visible=False или True)-Косяк у меня :(( / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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