Fråga : Besparingen sparar i MS Word

Jag har hört på något pekar, att, när besparingen en spara i MS Word, det sparar endast ändringarna du gjorde efter sista gång som du sparade, i stället för besparing helhetsdokumentet igen (för att att förkorta det tidsbesparande). Är detta riktigt?
If så, finns det a långt som ser in i dokumentet för att se revideringarna?
Is där a långt som gör ”en rengöring” räddning som tar bort alla föregående revideringar?

" klar "

Svar : Besparingen sparar i MS Word

Patrick,

Några saker, som tilltalas i min artikelhttp://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/A_3391-Using-the-Dictionary-Class-in-VBA.html

1) I motsats till en samling du kan inte se till objekt i en ordbok using ett index.  Ganska i en ordbok, du kan endast hämta ett singelobjekt, om du levererar dess nyckel-.  Så ditt kretsa:

    För I = 1 till dic. Räkning
        . Celler (I, ”C”) = dic. Objekt (I)
    Därefter i

ska inte för handtag objekt ut från ordboken.  Sannerligen på grund av den implicit ordboken ”tillfoga” uppförande, det kretsar tillfogar faktiskt nya objekt till ordboken:),

2) Du tillfogade faktiskt spänna som det nyckel-, och inte värdera av cellen, i ditt första kretsar:

    För varje celle i rng
        Om inte dic.exists (celle) därefter
            dic. Tillfoga celle, celle
        Avsluta om
    Nästa celle

Stämma, sedan varje cell är ett olikt anmärker, du avslutade faktiskt upp att tillfoga alla de celler som både objekt och

******************,

Så att fixa kodifiera:

1) Passera tydligt värderar av cellerna och inte cellerna sig själv, till ordboken.  Eller använd en samlingöverföring för att skapa en samling i minne, och därefter kretsa till och med samlingen och passera samling värderar till ordboken

2) Dumpa objekten in i en samling

3) Gör en samlingöverföring för att skriva värderar till arbetssedeln

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:
Undermest dict_test ()
    
    Dunkel rng som spänner
    Dunkel celle som spänner
    Dunkla dic_items som Variant
    Dunkelt I som Long
    Dunkelt x som Variant
    
    Dunkelt dic som Scripting.Dictionary
    Fastställd dic = ny Scripting.Dictionary
    dic.CompareMode = 1
    
    Med täcker (”Sheet1”)
        Fastställd rng = spänner (. Celler (1, ”A”). Celler (. Rows.Count, ”A”). Avsluta (xlUp))
    
        För varje celle i rng
            Om inte dic.exists (celle. Värdera) därefter
                dic. Tillfoga celle. Värdera celle. Värdera
            Avsluta om
        Nästa celle
        
        dic_items = dic. Objekt
        
        . [c: c] .ClearContents
        . [c1]. Resize (dic. Räkna 1) = Application.Transpose (dic_items)
    Avsluta med
    
    Fastställdt dic = ingenting
    
Avsluta suben
Andra lösningar  
 
programming4us programming4us