VBA計算資料數的方法有函數嘛???



贊助商連結


foxcat99
2002-04-19, 06:19 PM
EX:有m筆資料(此例為5筆)
分別為
A B C
1 25 36 81
2 35 26 64
3 85 64 95
4 35 54 84
5 87 98 48

Dim i as single
i=1
do until cells(i,1)=""
i=i+1
loop
m=i-1
執行完.........m=5

可是只是計算資料'列數'就要用這個寫........
是不是有函數可以直接用.........
還請高手們指導..........:confused: :confused:

贊助商連結


Oyazi
2002-04-19, 06:38 PM
用ROWS()函數呀
在括號裡輸入你要計算的範圍,如:A1:A5
就會傳回5呀...
不用用到VBA啦...

foxcat99
2002-04-19, 11:17 PM
最初由 Oyazi 發表
用ROWS()函數呀
在括號裡輸入你要計算的範圍,如:A1:A5
就會傳回5呀...
不用用到VBA啦...

先謝謝您的回應...........
可素我有100多個檔案勒.........
所以用VBA寫來整理檔案比較快.........
要計算資料有m筆.....只是程式中的一部份
ex:
for i=1 to m
.....
next i
m就是我的資料數,假如我要用A1:A5的方式,
那就直接寫成
for i=1 to 5就好囉....因為已經看到A1:A5,
自然知道有5筆資料囉.......
小弟只是想說有沒有函數可以簡化,
免得還要寫幾行程式來計算......
如果沒有,那還是用這幾行程式代表囉........
請高手大大們指導一下......
感激感激.........

ICLA
2002-04-19, 11:35 PM
如果資料是從第一列開始,而且有資料的列與列間沒有空白列,那麼 ActiveSheet.UsedRange.Rows.Count 可以計算出含有資料的列數。

cinta3344
2002-04-27, 02:43 PM
最初由 ICLA 發表
如果資料是從第一列開始,而且有資料的列與列間沒有空白列,那麼 ActiveSheet.UsedRange.Rows.Count 可以計算出含有資料的列數。

我實際TRY了一下,發現中間有列的空白還是能算出耶,會
卡空白列的好像是CurrentRegion

foxcat99
2002-04-27, 05:12 PM
最初由 cinta3344 發表


我實際TRY了一下,發現中間有列的空白還是能算出耶,會
卡空白列的好像是CurrentRegion

偶也有試過,可是.................
全部共有r筆資料.........
當每列的第一欄資料從缺,第2欄到第n欄有資料.....
共有m列這種資料.......
所以共有有效資料m-r筆資料.............
可素用上述的方法..........
依然還是有r筆,而非m-r筆資料喔...........
請高手賜教.............

leonchou
2002-04-27, 07:54 PM
何不試試用 COUNTA 或 DCOUNTA 函數?
看要以哪個欄位為準, 就可算出非空白的筆數了.
在程式中使用工作表函數, 記得用WordsheetFunction.
例如 a = WordsheetFunction.Counta(Columns(1))

cinta3344
2002-04-29, 09:44 AM
最初由 Leon Chou 發表
何不試試用 COUNTA 或 DCOUNTA 函數?
看要以哪個欄位為準, 就可算出非空白的筆數了.
在程式中使用工作表函數, 記得用WordsheetFunction.
例如 a = WordsheetFunction.Counta(Columns(1))

每次看周前輩的REPLY都能有新的感動,雖然我不是有問題的那個人
但還是能學到不少技巧,感恩啊~~~:p

leonchou
2002-04-29, 01:36 PM
我應該謝謝你:) 因為我回來再看一次才發現自己打錯字了-_-||
<strike> WordsheetFunction </strike> ← 這個不對
WorksheetFunction ← 這個才對

cinta3344
2002-04-29, 11:17 PM
最初由 foxcat99 發表


偶也有試過,可是.................
全部共有r筆資料.........
當每列的第一欄資料從缺,第2欄到第n欄有資料.....
共有m列這種資料.......
所以共有有效資料m-r筆資料.............
可素用上述的方法..........
依然還是有r筆,而非m-r筆資料喔...........
請高手賜教.............

TRY THIS :
DIM ROWCNT AS LONG
ROWCNT=RANGE("A1").CurrentRegion.Rows.Count

前提是你要先讓游標進到有資料的區塊,CELLS(X,X).SELECT之類的
否則選到空的BLOCK會傳回1,另外不能有空白列隔開