2013-05-07 79 views
0

我需要VBA的一些幫助。我有這個表:用宏計算每列每列的總計數

Game  Room  City   Machines_week_1  Played_week_1  Won_week_1  Machines_week_2  Played_week_2  Won_week_2 
A  Julia San Francisco  3     1200   1100    2     500    250 
B  Julia San Francisco  4     200   100    1     500    250 
C  Julia San Francisco  3     500   100    5     600    250 
D  Julia San Francisco  1     200   50    2     1000    750 
B  Carla San Francisco  1     1000   600    2     1500    500 
C  Carla San Francisco  3     800   400    3     500    250 
E  Carla San Francisco  6     1200   1100    4     600    300 
A  Jaime Rio de Janeiro  1     200   50    2     90    50 
C  Jaime Rio de Janeiro  3     900   600    3     500    250 
(....) 

我想要計算每個城市和遊戲的總數,忽略客房,每個星期在表的末尾。喜歡的東西:

Game  Room  City   Machines_week_1  Played_week_1  Won_week_1  Machines_week_2  Played_week_2  Won_week_2 
(...) 
A  Total San Francisco  3     1200   1100    2     500    250 
B  Total San Francisco  5     1200   700    3     3000    750 
C  Total San Francisco  6     1300   500    8     1100    500 
D  Total San Francisco  1     200   50    2     1000    750 
E  Total San Francisco  6     1200   1100    4     600    300 
A  Total Rio de Janeiro  1     200   50    2     90    50 
C  Total Rio de Janeiro  3     900   600    3     500    250 
(....) 

我想是這樣的:

For p = 1 To LastRow 

If Range("CA1").Offset(i, 0).Value <> 2 Then (I have this much of columns with data and weeks) 
a = Range("A1").Offset(p, 0).Value 
c = Range("C1").Offset(p, 0).Value 


For i = 1 To LastRow 
    If Range("A1").Offset(i, 0).Value = a And Range("C1").Offset(i, 0).Value = c Then 

    Machines1 = Range("D1").Offset(i, 0).Value + Machines1 
    Played1 = Range("E1").Offset(i, 0).Value + Played1 
    (....) 
    Machines2 = Range("G1").Offset(i, 0).Value + Machines2 
    Played2 = Range("H1").Offset(i, 0).Value + Played2 
    Range("CA1").Offset(i, 0).Value = 2 (this column is empty, Im using it for a test to see if I have calculated this combination of city and game already) 
    End If 

    Next i 

     lastn = Range("A65536").End(xlUp).Row 
     Range("A1").Offset(lastn, 0).Value = a 
     Range("B1").Offset(lastn, 0).Value = "Total" 
     Range("C1").Offset(lastn, 0).Value = c 
     Range("D1").Offset(lastn, 0).Value = Machines1 
     Range("E1").Offset(lastn, 0).Value = Played1 
     (...) 
     Range("G1").Offset(lastn, 0).Value = Machines2 
     Range("H1").Offset(lastn, 0).Value = Played2 
     (...) 

     Machines1=0 
     Played1=0 
     Machines2=0 
     Played2 = 0 
     (....) 
     End If 

     Next p 

但它不工作。它仍然在爲每個房間重複遊戲(總數是正確的,但它們出現的次數與城市中的房間數量相同)。如果任何人都可以幫助我,我會非常讚賞。 謝謝!

+1

你有雖然t數據透視表還是使用小計功能? – glh 2013-05-07 04:28:43

回答