計算符合某條件的非空白儲存格的vba寫法

2015-08-01 4:11 am
標題好像有點繞口, 因為知道的使用方法太少了, 想以此例增加學習, 希望大大們可以不吝指教, 謝謝~~
資料假設情況如下:
sheet1:
A1:aa B1:好 C1:好 D1:差
A2:aa B2:差 C2:好
A3:bb B3:怪 C3:拉
A4:bb B4:怪 C4:拉 D4:好
A5:bb B5:怪 C5:拉
(......也許會有很多列)

問題: 如果想要計算以欄A為索引, 所使用的儲存格(指非空白的)
此例的結果, sheet2
A1: aa B1:5
A2: bb B2:7

請問要如何以vba如何寫呢,謝謝
(怕表示不清楚,附上檔案)
https://app.box.com/s/aljfrra6jmfz0zm76jw8xkszac087tcm
更新1:

sheet2為空白頁,沒有任何索引的情況

回答 (4)

2015-08-01 6:29 pm
准提部林大, 設想真周到, 會有混排的情況,
A1:aa
A2:aa
A3:bb
A4:bb
A5:bb
A6:aa
A7:cc
A8:ee
A9:bb

2015-08-01 15:48:02 補充:
謝謝RCC大的提問,
1. 不會有跳欄或跳列空白的情況. (RCC大:會不會E1是空白,F1又有資料.......)
2. 欄A的索引也不會前面帶有空白,但欄A的索引會是什麼內容這是不確定的,
 假設輸入會強制設定一律為小寫,不會出現大寫,故沒有大小寫不同的問題
3.主要的處理情況是希望以sheet1的欄A中同樣的索引值,
 可以計算其欄所非空白的儲存格,例如,以列1及列2來說,其索引皆為 aa,
 則計算值為列1的B1~D1都有資料,故判定為非空白計數為3
 而列2的B2~C2都有資料,故判定為非空白計數為2

2015-08-01 15:57:14 補充:
4.由3.的計算結果,在sheet2中呈現A1: aa  B1:5
 sheet2_A1的 aa並不是原本就存在的,而是由sheet1出現的索引帶入,
 (sheet2為空白頁,沒有任何索引的情況)
 sheet2_B1的 5 ,就是由3+2得來的
5.假設的情況是,資料會在同一sheet1出現,而sheet2則是去統計當下sheet1資料的情況,故只要sheet1資料有改變,會手動操作更新sheet2的統計
以此類推....不知這說明是否足夠呢,謝謝~~
2015-08-01 8:08 pm
  請問所有資料是否均已檢誤完成?譬如說:您列舉的第1列各欄資料會不會E1是空白,F1又有資料,或是連續9列都有資料,第10列空白,第11列又有資料?或是”aa” key成” aa”(前面帶有空白)、或大小寫不同等;您希望電腦如何處理?又若是資料的增加是動態的,您每次Run程式時,均要電腦重新跑過嗎?
2015-08-01 6:13 pm
A欄項目,相同的是否都排一起?有無混排?

2015-08-01 17:44:23 補充:
參考檔:三種方案
http://www.funp.net/877563
2015-08-01 3:23 pm
Sub test()
With Sheets(1)
For i = 1 To .[A65536].End(xlUp).Row
x = Application.CountA(.Rows(i)) - 1
If .Cells(i, 1) = "aa" Then Sheets(2).Cells(1, 2) = Sheets(2).Cells(1, 2) + x

2015-08-01 07:23:26 補充:
If .Cells(i, 1) = "bb" Then Sheets(2).Cells(2, 2) = Sheets(2).Cells(2, 2) + x
Next
End With
End Sub


收錄日期: 2021-05-04 01:39:15
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20150731000015KK06763

檢視 Wayback Machine 備份