Vraag : Hoe en wanneer gebruikt u AutoPostBack?

Welke soorten controles u plaatste AutoPostBack aan waar met?

What is de problemen die kunnen voortvloeien?

Interested…

~newbieweb

Antwoord : Hoe en wanneer gebruikt u AutoPostBack?

Patrick,

Een paar dingen, die in mijn artikelhttp://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/A_3391-Using-the-Dictionary-Class-in-VBA.html worden gericht

1) In tegenstelling tot een Inzameling, kunt u niet naar punten in een woordenboek verwijzen gebruikend een index.  Eerder, in een woordenboek, kunt u één enkel punt slechts halen als u zijn sleutel levert.  Zo, uw lijn:

    Voor I = 1 aan dic. Telling
        . Cellen (I, „C“) = dic. Punt (I)
    Volgende I

geen punten van het woordenboek zal terugtrekken.  Wegens het impliciete woordenboek „voeg namelijk“ gedrag toe, voegt die lijn eigenlijk nieuwe punten aan het woordenboek toe:)

2) U eigenlijk voegde de waaier als sleutel, en niet de waarde van de cel, in uw eerste lijn toe:

    Voor Elke celle in rng
        Als niet dic.exists (celle) Dan
            dic. Voeg celle, celle toe
        Beëindig als
    Volgende celle

Aangezien elke cel een verschillend voorwerp is, beëindigde u eigenlijk omhoog toevoegend elk van die cellen als zowel punt als sleutel

******************

Zo, om de code te bevestigen:

1) Ga uitdrukkelijk de waarden van de cellen, en niet de cellen zelf, tot het woordenboek over.  Of, gebruik een serieoverdracht om een serie in geheugen tot stand te brengen, en toen lijn door de serie en seriewaarden over te gaan tot het woordenboek

2) Dump de punten in een serie

3) Doe een serieoverdracht de waarden aan het aantekenvel schrijven

Patrick
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:
Sub het meest dict_test ()
    
    Schemerige rng als Waaier
    Schemerige celle als Waaier
    Schemerige dic_items als Variant
    Schemerige I zoals lang
    Schemerig x als Variant
    
    Schemerige dic als Scripting.Dictionary
    Reeks dic = Nieuwe Scripting.Dictionary
    dic.CompareMode = 1
    
    Met Bladen („Sheet1“)
        Reeks rng = Waaier (. Cellen (1, „A“). Cellen (. Rows.Count, „A“). Eind (xlUp))
    
        Voor Elke celle in rng
            Als niet dic.exists (celle. Waarde) toen
                dic. Voeg celle toe. Waarde, celle. Waarde
            Eind als
        Volgende celle
        
        dic_items = dic. Punten
        
        . [c: c] .ClearContents
        . [c1]. Resize (dic. Telling, 1) = Application.Transpose (dic_items)
    Eind met
    
    Reeks dic = niets
    
Sub van het eind
Andere oplossingen  
 
programming4us programming4us