Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Медленная работа кода / 7 сообщений из 7, страница 1 из 1
23.12.2010, 12:11
    #37031344
SanSagittarius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная работа кода
Ребята, подскажите, в чем может быть причина того, что на первом листе Excel код VBA выполняется вполне быстро, а на втором даже визуально видно, что медленно и грузится проц. Код этих макросов практически одинаковый, за исключением названий листов. Не пойму - из-за чего такое может происходить... ((
...
Рейтинг: 0 / 0
23.12.2010, 12:16
    #37031360
George Ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная работа кода
Может быть на втором листе формулы, которые пересчитываются при работе макроса.
Либо во втором макросе цикл какой-нибудь зависший.
Выложите сюда файл. С конкретным примером легче разобраться.
...
Рейтинг: 0 / 0
23.12.2010, 12:20
    #37031384
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная работа кода
SanSagittariusРебята, подскажите, в чем может быть причина того, что на первом ой листе Excel загородной трассе код VBA машина выполняется движется вполне быстро, а на втором даже визуально видно, что медленно и грузится проц гудит двигатель . Код Марка этих макросов машин практически одинаковый a , за исключением названий листов трасс . Не пойму - из-за чего такое может происходить... ((

поправил,
я не стебусь, просто штатный экстрасенс правда в отпуске
...
Рейтинг: 0 / 0
23.12.2010, 13:08
    #37031530
SanSagittarius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная работа кода
Shamanus,

Спасибо, рассмешили! ))) Свою ошибку понял - код выложу.
...
Рейтинг: 0 / 0
23.12.2010, 13:38
    #37031618
SanSagittarius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная работа кода
George Ru,

Этот код работает быстро:

Код: 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.
Sub ELBACount()
Set WB = Application.ThisWorkbook
Set WS = WB.Worksheets("ELBACount")

WS.Range(WS.Cells( 3 ,  5 ), WS.Cells( 3 ,  40 )) =  0 

CurRowBig =  3 

For i =  1  To  50 

    With Worksheets( 1 ).Range("A1:A50")
    
TempVip = Cells(CurRowBig,  1 ).Value
    
Set c = .Find(TempVip, , , xlWhole)
'Set c = .Find(TempVip, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            vipiska = Cells(CurRowBig,  1 ).Value
            SumVip = Cells(CurRowBig,  2 ).Value
                VipList
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
        
    End With
    CurRowBig = CurRowBig +  1 
Next i

'Cells(3, 41).Value = Date

    With WS.Range("E1:AZ1")
        TempDate = "Дата"
        Set c = .Find(TempDate, , , xlWhole) '
        'Set c = .Find(TempVip, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                 Cells(c.Row +  2 , c.Column).Value = Date
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    
    End With

End Sub


Function VipList()
With Worksheets( 1 ).Range("E1:AZ1")
    Set c = .Find(vipiska, , , xlWhole)
    If Not c Is Nothing Then
        firstAddress = c.Address
        'firstAddressDop = Cells(c.Row + 1, c.Column).Address
        Do
            Cells(c.Row +  2 , c.Column).Value = SumVip
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
End Function


Этот код почему-то тормозит:

Код: 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.
Sub LoadCount()

Dim WB As Workbook
Dim WS As Worksheet

Dim i, c, CurRowBig, TempVip, firstAddress, TempDate

Set WB = Application.ThisWorkbook
Set WS = WB.Worksheets("LoadCount")

WS.Range(WS.Cells( 3 ,  5 ), WS.Cells( 3 ,  50 )) =  0  ' 

CurRowBig =  3 

For i =  1  To  50 

    With Worksheets("LoadCount").Range("A1:A50")
        TempVip = Cells(CurRowBig,  1 ).Value
    
        Set c = .Find(TempVip, , , xlWhole)
         'Set c = .Find(TempVip, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                vipiska = Cells(CurRowBig,  1 ).Value
                SumVip = Cells(CurRowBig,  2 ).Value
                    VipLoadCount
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
        
    End With
    CurRowBig = CurRowBig +  1 
Next i

'Cells(3, 41).Value = Date ' 

    With WS.Range("E1:AZ1")
        TempDate = "Дата"
        Set c = .Find(TempDate, , , xlWhole) '
        'Set c = .Find(TempVip, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                 Cells(c.Row +  2 , c.Column).Value = Date
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    
    End With

End Sub

Function VipLoadCount()

Dim c, firstAddress

With Worksheets("LoadCount").Range("E1:AZ1")
    Set c = .Find(vipiska, , , xlWhole)
    If Not c Is Nothing Then
        firstAddress = c.Address
        'firstAddressDop = Cells(c.Row + 1, c.Column).Address
        Do
            Cells(c.Row +  2 , c.Column).Value = SumVip
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
        
    End If
End With
End Function


Где я допустил ошибку?
...
Рейтинг: 0 / 0
23.12.2010, 14:28
    #37031752
George Ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная работа кода
Это типа ребус Найдите 5 отличий? ;)
...
Рейтинг: 0 / 0
23.12.2010, 15:27
    #37031870
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная работа кода
SanSagittarius,

нормаЭтот код почему-то тормозит: wSub ELBACount()Sub LoadCount() wSet WB = Application.ThisWorkbookSet WB = Application.ThisWorkbookwSet WS = WB.Worksheets("ELBACount")Set WS = WB.Worksheets("LoadCount") wWS.Range(WS.Cells(3, 5), WS.Cells(3, 40)) = 0WS.Range(WS.Cells(3, 5), WS.Cells(3, 50)) = 0 ' w With Worksheets(1).Range("A1:A50") With Worksheets("LoadCount").Range("A1:A50") TempVip = Cells(CurRowBig, 1).Value TempVip = Cells(CurRowBig, 1).Value Set c = .Find(TempVip, , , xlWhole) Set c = .Find(TempVip, , , xlWhole)w vipiska = Cells(CurRowBig, 1).Value vipiska = Cells(CurRowBig, 1).Valueа1 SumVip = Cells(CurRowBig, 2).Value SumVip = Cells(CurRowBig, 2).Valuea2 VipList VipLoadCounta3With WS.Range("E1:AZ1") With WS.Range("E1:AZ1")w Set c = .Find(TempDate, , , xlWhole) ' Set c = .Find(TempDate, , , xlWhole) 'w Cells(c.Row + 2, c.Column).Value = Date Cells(c.Row + 2, c.Column).Value = Datew wEnd Sub End Sub wwFunction VipList()Function VipLoadCount()wWith Worksheets(1).Range("E1:AZ1")With Worksheets("LoadCount").Range("E1:AZ1") Set c = .Find(vipiska, , , xlWhole) Set c = .Find(vipiska, , , xlWhole)w Cells(c.Row + 2, c.Column).Value = SumVip Cells(c.Row + 2, c.Column).Value = SumVip Set c = .FindNext(c) Set c = .FindNext(c)wEnd Function End Functionw
-строкам без пометки не доверяю-не ясен лист
-переменные с пометкой а1 и а2 не известны в а3
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Медленная работа кода / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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