返回列表 上一主題 發帖

[發問] 有條件的統計

你把Private Sub Ex()
前面的Private 拿掉
就可在工作列~巨集內看到它
建立巨集時對話方塊存放位置就選"個人巨集活頁簿"
這樣開每個檔案都會隨之開啟
存增益集是另存,選"xla",存好後在增益集中載入

TOP

本帖最後由 gctsai 於 2011-7-31 11:15 編輯
你把Private Sub Ex()
前面的Private 拿掉
就可在工作列~巨集內看到它
建立巨集時對話方塊存放位置就選" ...
oobird 發表於 2011-7-31 09:02

謝謝大大,可是如果把"前面的Private 拿掉"的話那還可以自動更新嗎?

增益集不知道要選那一個??

TOP

Private表示 Sub 程序只在宣告它之模組裏的程序所使用。
與自動更新毫無關係。

TOP

大大請問一下為什麼把"條件"從[A2]移到[C2],結果序號[E2]就變成了商品品名[G2]
text.rar (12.51 KB)

TOP

回復 24# gctsai
程序裡請加上紅字部分
f = Application.Match(.[b1].Text, Sheets("來源").Rows(1), 0) 'f: 在來源中尋找統計的欄位
f = f - 2    '你A欄從移到C欄 ***** Rng.Offset會改變
If Rng = .Range("A2") Then D(Rng.Offset(, f- 1).Value) = D(Rng.Offset(, f - 1).Value) + 1

TOP

回復 25# GBKEE

   從 A欄移到C欄要加 f=f-2
   那從A欄移到E欄是不是要加 F=F-4
   也就是如果移多少欄就要減回來嗎??

TOP

請問各位大大, 如果計算"數量"可否不是利用等於號(=) 絕對值 {0,1,2...}, 而改為 大於/小於 可以嗎?
小學生 sony

TOP

回復 26# gctsai
修改如下就必去計算欄位了
  1. Sub Ex()
  2.     Dim D As Object, Rng As Range, f As Variant
  3.     Set D = CreateObject("SCRIPTING.DICTIONARY") '設立字典物件
  4.     With Sheets("來源")
  5.         Set Rng = .[c2]    '設立儲存格物件
  6.         f = Application.Match(Sheets("統計").[b1].Text, .Rows(1), 0) 'f: 在來源中尋找統計的欄位
  7.         If IsError(f) Then MsgBox "統計的欄位不存在!!!": Exit Sub
  8.         Do While Rng <> ""        'Rng的值為空白時不執行 Do的迴圈
  9.            If Rng = Sheets("統計").Range("A2") Then D(.Cells(Rng.Row, f).Value) = D(.Cells(Rng.Row, f).Value) + 1
  10.             '        .[A2] ->Sheets("統計")[A2]      '字典物件(KEY)=ITEM + 1
  11.             Set Rng = Rng.Offset(1)  'Rng下移一列位
  12.         Loop
  13.     End With
  14.     With Sheets("統計").[B2:C2]
  15.         .Resize(.CurrentRegion.Rows.Count, 2) = ""
  16.         .Cells(1).Resize(D.Count) = Application.Transpose(D.KEYS)
  17.         .Cells(2).Resize(D.Count) = Application.Transpose(D.ITEMS)
  18.         .Resize(D.Count, 2).Sort Key1:=.Cells(1), Order1:=xlAscending, Header:=xlNo
  19.     End With
  20.     Set D = Nothing
  21.     Set Rng = Nothing
  22. End Sub
複製代碼

TOP

不好意思,GBKEE大大,可以解釋一下"SCRIPTING.DICTIONARY"的用法呢?這個我還沒學過,謝謝!
50 字節以內
不支持自定義 Discuz! 代碼

TOP

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題