Just nu i M3-nätverket
Gå till innehåll

Långsamt att tilldela cell värde


johnJ

Rekommendera Poster

Hej!

 

Har problem med att via VBA kod i Excel 2000 sätta värden på celler. Det fungerar men problemet är att det går så väldigt långsamt, ca 1 sek per cell (den går igenom 5100 celler).

 

Har misstankar om att problemet ligger att de värden som sätts på cellerna refererar till andra excel filer.

Application.ActiveSheet.Cells(r, coldst + k) = CellRef 
Där exvis

CellRef = "='N:\John\statistik\totalt\[nyBENGT.xls]1999'!AI100"

Är det detta som är problemet ? Isåfall, hur gör jag för att snabba upp allting ??

 

Tack i förhand.

Mvh. John

 

Sub SetCatData(ymin As Integer, ymax As Integer, endaty As Integer, ByVal ShName As String, ByVal ShIndex As Integer)

    Dim colsrc As Integer, coldst As Integer, CellRef As String
    colsrc = 3 + 3 * 4 + 3 * 5 * (ShIndex + 1)
    
    For r = startaty To endaty Step SellerAdj
        If cc < UBound(files) Then 'Går igenom varje säljare
            For y = LBound(files(cc).SheetYears) To UBound(files(cc).SheetYears)
                If IsNumeric(files(cc).SheetYears(y).YearNo) Then ' Går igenom alla år
                    coldst = 3 + 15 * (Int(files(x).SheetYears(y).YearNo) - ymin)
                    For k = 0 To 14 ' Går igenom alla kolumner på ett år
                        CellRef = "='" & files(cc).RefName & files(cc).SheetYears(y).YearNo & "'!" & GetColumnName(colsrc + k) & files(cc).SheetYears(y).SumRow
                        Application.ActiveSheet.Cells(r, coldst + k) = CellRef
                    Next k
                End If
            Next y
            cc = cc + 1
        End If
    Next r
End Sub

[inlägget ändrat 2002-08-06 08:40:32 av johnJ]

Länk till kommentar
Dela på andra webbplatser

johnJ,

 

Med nätverksenheter blir det segt och sker dessutom en viss bearbetning samtidigt och därefter tilldelas celler värden.

 

Alternativ en mindre databas på samma nätverksenhet som har läst in data från XL-filerna före och som du anropar mha ADO/SQL för att hämta önskade värden.

 

Mvh

Dennis

Besök Sveriges ledande oberoende webbplats om MS Excel: http://www.xldennis.com

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Jag är medveten om att det är en förslöande faktor med nätverket.

 

Jag gjorde några tidberäkningar nu under lunchen då belastningen är lägre. Då behövde den 0.17 sec för att uppdatera varje cell mot dryga sekunder som jag hade innnan.

 

Den måste ligga på nätverket så det kan jag inte göra något åt men det verkar som att excelfilen som cellen ska referera till öpnnas varje gång cellvärdet sätts. Kan man inte på något sätt säga åt Excel att inte göra detta förrän jag har sätt referenser på alla celler ?

 

Mvh. John

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...