Frage : VBA Code ist nicht genug leistungsfähig

He guys

Are dort jede mögliche Weise, die kann ich leistungsfähigeren Code als dieses verursachen? Es dauert sek 13. um durch das code.

zu laufen anstatt das übertreffenarbeitsbuch zu teilen, das viel persönliche Information enthält, versuche ich das case.

rng1 zu erklären bin ein culumn das Schlüsselwerte in einer Tabelle die 200 Reihen ist und herum 120 columns.
rng2 ein culumn in einem anderen Blatt ist, das einige der Elemente in rng1 enthält, aber keine Elemente enthält die nicht in rng1 sind. Was der Code tut, ist, kopiert es die Werte in den Spalten der Zellen 3 und 4 von rng2 und von den Pasten es in Zellen, die „Colm-“ Spalten weg von den zusammenpassenden Elementen in rng1.

Can sind, nicht, das dieses getanes leistungsfähigeres ist - sek 13 ist zu lang. Warum tun diese Zeit des Nehmens soviel?

Cheers, Raahaugen
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:
6:
37:
38:
39:
40:
Sub AAR_updateBudget ()
Schwaches rng1 als Strecke
Schwaches rng2 als Strecke
Schwaches celle1 als Strecke
Schwaches celle2 als Strecke
Schwacher Colm als lang

Mit Blättern („AAR_assbudget“)
    Einstellen rng1 = Strecke (. Zellen (5, „G“). Zellen (. Rows.Count, „G“). Ende (xlUp))
Ende mit

Mit Blättern („ass_all“)
Einstellen rng2 = Strecke (. Zellen (5, „B“). Zellen (204, „B“))
Ende mit

Für jedes celle1 in rng1
    Für jedes celle2 in rng2
        Wenn celle1 = celle2 dann
'___________
            Colm = Zellen (2, „U“). Wert * 2 + 21
            celle2.Offset (0, Colm) = celle1.Offset (0, 3)
'Die zwei oben genannten Linien nimmt sek 6-7.
'___________
            Colm = Colm + 1
            celle2.Offset (0, Colm) = celle1.Offset (0, 4)
'Die zwei oben genannten Linien nimmt sek 6-7.
'In der Gesamtmenge nimmt diese 4 Linien sek 13.
'___________
        Beenden wenn
    Folgendes celle2
Folgendes celle1

'COD_copyformulas Makro
    Application.CutCopyMode = falsch
    Strecke („J107: K107“). Kopie
    Strecke („J5: K104“) .PasteSpecial Paste: =xlPasteFormulas, Betrieb: =xlNone, _
        SkipBlanks: =False, umstellen n: =False
    Application.CutCopyMode = falsch

Enden-Unterseeboot

Antwort : VBA Code ist nicht genug leistungsfähig

Raahaugen,

Das Makro in der angebrachten Akte bitte versuchen - sie sollte viel schneller sein.

Patrick
Weitere Lösungen  
 
programming4us programming4us