Questione : La soluzione di resoconto sommario di Excel VBA ha avuto bisogno di

Lo strato 1 del .xls allegato è un rapporto mensile tipico di difetto. Ho bisogno del codice di VBA di generare lo strato 2 (sommario) e di rivestire 3 (cronologia) per esempi manuali. Assegnerò 500 punti per una soluzione codificata per gli strati 2 e gli altri 500 per lo strato 3. class= " lastRow del
>Attachments " di nome " del class= del class= " valore " del
il

class= " fileInfo " del
il title= " " di nome di schedario del class= " di Rapporto--071410-081910-.xls il class= (61 KB)  Javascript " del href= " " dei attachmentDetails del class= di (tipo di lima particolari)  
class= " descrizione " del
Rapporto d'attività con il sommario e Timeline
il class= di
del >
class= del

Risposta : La soluzione di resoconto sommario di Excel VBA ha avuto bisogno di

Nel frattempo, qui sono entrambe le soluzioni.



PS. Ringraziamenti DropBearMod: -) alcuni vecchi nomi vengono lentamente di nuovo alla mente
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:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
MakeSummary secondario ()
Wb fioco come libro di esercizi
Ds fioco come manuale, OS come manuale
lRow fioco lungamente, i quanto lungamente, J come lungamente, fRecord come lungamente
Regolar wb = ThisWorkbook
Regolar OS = wb. Manuali (“UnattendedActivity„)
Regolar ds = wb. Worksheets.Add (dopo: =os)
ds. Nome = “sommario„
lRow = OS. Gamma (“A65536„). Estremità (xlUp). Fila
OS. Cellule (7, 1).Copy ds. Cellule (1, 1)
ds. Cellule (1, 2).Value = OS. Cellule (7, 2).Value
ds. Cellule (1, 3).Value = OS. Cellule (7, 9).Value
ds. Cellule (1, 1).Copy
ds. Gamma (“B1: xlPasteFormats di C1„) .PasteSpecial
ds. Cellule (1, 1).ColumnWidth = 15.14
ds. Cellule (1, 2).ColumnWidth = 18.57
ds. Cellule (1, 3).ColumnWidth = 10
ds. Cellule (1, 4).ColumnWidth = 1.29
ds. Cellule (1, 5).ColumnWidth = 2.29
ds. Cellule (1, 6).ColumnWidth = 2.29
ds. Cellule (1, 7).ColumnWidth = 4.43
ds. Cellule (1, 8).ColumnWidth = 5.57
ds. Cellule (1, 9).ColumnWidth = 7
J = lRow - 6
fRecord = J
OS. Gamma (“A8: „ & lRow). Copia
ds. xlPasteValues della gamma (“A2„) .PasteSpecial
ds. xlPasteFormats della gamma (“A2„) .PasteSpecial
OS. Gamma (“B8: B„ & lRow). Copia
ds. xlPasteValues della gamma (“B2„) .PasteSpecial
OS. Gamma (“I8: I„ & lRow). Copiare il ds. Gamma (“C2„)
ds. Gamma (“A2: C„ & j). Specie Key1: =Range (“A2„), Order1: =xlDescending, Key2: =Range (“B2„) _
        , Order2: =xlDescending, intestazione: =xlNo, OrderCustom: =1, MatchCase: _ del =False
        , Orientamento: =xlTopToBottom, DataOption1: =xlSortNormal, DataOption2: = _
        xlSortNormal


Per i = lRow 8 a punto -1
    ds. Cellule (J, 4) = ora (ds. Cellule (J, 3))
    ds. Cellule (J, 5) = minuto (ds. Cellule (J, 3))
    ds. Cellule (J, 6) = in secondo luogo (ds. Cellule (J, 3))
    Se ds. Cellule (J, 1) <> ds. Cellule (J - 1, 1) o ds. Cellule (J, 2) <> ds. Cellule (J - 1, 2) allora
        ds. Cellule (J, 9).Formula = “=SUM (F„ & J &„: F " & fRecord & ")/60„
        ds. Cellule (J, 8).Formula = “=SUM (E„ & J &„: E " & fRecord & ")+I„ & J &„ /60 "
        ds. Cellule (J, 7).Formula = “=SUM (D„ & J &„: D " & fRecord & ")+H„ & J &„ /60 "
        ds. Cellule (J, 3).Formula = “=G„ & J &„ /24 "
        ds. Cellule (J, 3).NumberFormat = “h: millimetro„
        fRecord = J - 1
    Altrimenti
        ds. Gamma (“A„ & j).EntireRow.Hidden = allineano
        ds. Cellule (J, 3) = ""
    Concluder se
    J = J - 1
Dopo i
ds. Gamma (“D4: I4„) .EntireColumn.Hidden = allineano
Sommergibile dell'estremità

NewTimeLine secondario ()
Wb fioco come libro di esercizi
Ds fioco come manuale, OS come manuale
lRow fioco lungamente, i quanto lungamente, J come lungamente, K come lungamente, tCounter come lungamente, rCounter come lungamente, nCol come lungamente
cRange fioco come gamma
Regolar wb = ThisWorkbook
Regolar OS = wb. Manuali (“sommario„)
Regolar ds = wb. Worksheets.Add (dopo: =os)
ds. Nome = “cronologia„
ds. Cellule (1, 1) = “CRONOLOGIA„
ds. Cellule (1, 1).Font.Bold = allinea
ds. Cellule (1, 1).ColumnWidth = 12.57
lRow = OS. Gamma (“A65536„). Estremità (xlUp). Fila
tCounter = 2
J = 2
Per i = 2 a lRow
    Se OS. Cellule (i + 1, 1) <> OS. Cellule (i, 1) allora
        ds. Cellule (J, 1) = OS. Cellule (i, 1)
        rCounter = tCounter
        Per K = rCounter alla i
            Se OS. Cellule (K, 2) <> OS. Cellule (K + 1, 2) o OS. Cellule (K, 1) <> OS. Cellule (K + 1, 1) allora
                Regolare il cRange = il ds. Gamma (“B1: IV1„). Ritrovamento (OS. Cellule (K, 2))
                Se non il cRange allora è niente
                    ds. Cellule (J, cRange.Column) = OS. Cellule (rCounter, 3)
                    ds. Cellule (J, cRange.Column) .NumberFormat = “h: millimetro„
                Altrimenti
                    nCol = ds. Gamma (“IV1„). Estremità (xlToLeft). Colonna + 1
                    ds. Cellule (1, nCol) = OS. Cellule (K, 2)
                    ds. Cellule (1, nCol). Font.Bold = allineano
                    ds. Cellule (1, nCol) .ColumnWidth = 11.29
                    ds. Cellule (J, nCol) = OS. Cellule (rCounter, 3)
                    ds. Cellule (J, nCol) .NumberFormat = “h: millimetro„
                Concluder se
                rCounter = K + 1
            Concluder se
        K seguente
        J = J + 1
        tCounter = i + 1

    Concluder se
Dopo i
ds. Cellule (J, 1) = “importi totali„
Per i = 2 al nCol
    ds. Cellule (J, i). Formula = “=Sum („ & ds. Cellule (2, i). Indirizzo & “: „ & ds. Cellule (J - 1, i). Indirizzo & ")„
Dopo i
ds. Cellule (J, nCol + 1).Formula = “=Sum („ & ds. Cellule (J, 2).Address & “: „ & ds. Cellule (J, nCol). Indirizzo & ")„
ds. Gamma (ds. Cellule (J, 1), ds. Cellule (J, nCol + 1)). Font.Bold = allineano
ds. Gamma (ds. Cellule (J, 1), ds. Cellule (J, nCol + 1)) .NumberFormat = “[h]: millimetro: ss; @„
ds.UsedRange.HorizontalAlignment = xlCenter
Sommergibile dell'estremità
Altre soluzioni  
 
programming4us programming4us