註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 請問UsedRange.Rows.Count與End(xlUp).Row在處理上結果會有所不同嗎?
返回列表
下一主題
上一主題
發帖
[發問]
請問UsedRange.Rows.Count與End(xlUp).Row在處理上結果會有所不同嗎?
c_c_lai
發短消息
加為好友
c_c_lai
當前離線
UID
8671
帖子
2035
主題
24
精華
0
積分
2031
金錢
2031
點名
0
作業系統
Win7
軟體版本
Office2010
閱讀權限
100
性別
男
在線時間
2394 小時
註冊時間
2012-3-22
最後登錄
2024-2-1
博士班
帖子
2035
主題
24
精華
0
積分
2031
點名
0
作業系統
Win7
軟體版本
Office2010
閱讀權限
100
性別
男
註冊時間
2012-3-22
最後登錄
2024-2-1
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
發表於 2012-4-3 09:26
|
只看該作者
[發問]
請問UsedRange.Rows.Count與End(xlUp).Row在處理上結果會有所不同嗎?
請教大大:
ActiveSheet.UsedRange.Rows.Count 與 Range("B" & Rows.Count).End(xlUp).Row
兩種方式在實務處理上,其最後執行結果會有所不同嗎? 執行速度何者為優?
樓主熱帖
K 線股票圖如何能與主力、散戶、及成交量線
盤中 DDE 存檔與 VBA 的實際應用範例
如何應用 VBA 將股票圖完整的呈現出來?
Excel工作表單與Access資料庫的VBA互動問題
動態修正匯入圖表的最後資料列之列數所延伸
請教要如何使用 VBA 判別不規則儲存格的辦法
如何在股價圖下方應用 VBA 增列一拉霸?
很值得珍藏的 EXCEL VBA 函数参
請問如何使圖表上在0點上下的指標顏色分別以
如何判斷欄位值為#REF!或是#N/A?
收藏
分享
register313
發短消息
加為好友
register313
當前離線
麻辣 路人甲
UID
2468
帖子
967
主題
0
精華
0
積分
1001
金錢
1001
點名
0
作業系統
WIN XP
軟體版本
OFFICE 2003
閱讀權限
50
性別
男
來自
台北
在線時間
739 小時
註冊時間
2010-11-29
最後登錄
2022-5-17
頭銜:
麻辣 路人甲
大學生
帖子
967
主題
0
精華
0
積分
1001
點名
0
作業系統
WIN XP
軟體版本
OFFICE 2003
閱讀權限
50
性別
男
來自
台北
註冊時間
2010-11-29
最後登錄
2022-5-17
2
#
發表於 2012-4-3 11:06
|
只看該作者
回復
1#
c_c_lai
ActiveSheet.UsedRange.Rows.Count 與 Range("B" & Rows.Count).End(xlUp).Row
1.兩種方式在實務處理上,其最後執行結果會有所不同嗎?
(1) ActiveSheet.UsedRange.Rows.Count 所有使用儲存格所組成四方形區域之最後一列之列號
(2) Range("B" & Rows.Count).End(xlUp).Row B欄所使用儲存格之最後一格之列號
兩者傳回之列號有時相同,有時不同,依實際儲存格使用情形而定
應舉範例才能確定
2. 執行速度何者為優?
這應該沒那麼重要吧
只要整個程式的語法,邏輯沒問題,大部份執行速度都可以接受的
TOP
c_c_lai
發短消息
加為好友
c_c_lai
當前離線
UID
8671
帖子
2035
主題
24
精華
0
積分
2031
金錢
2031
點名
0
作業系統
Win7
軟體版本
Office2010
閱讀權限
100
性別
男
在線時間
2394 小時
註冊時間
2012-3-22
最後登錄
2024-2-1
博士班
帖子
2035
主題
24
精華
0
積分
2031
點名
0
作業系統
Win7
軟體版本
Office2010
閱讀權限
100
性別
男
註冊時間
2012-3-22
最後登錄
2024-2-1
3
#
發表於 2012-4-3 11:49
|
只看該作者
資料列累積多了,執行速度難道不會受影響嗎? 況且程式碼本身不只是只有執行此項而已,
譬如它還同時段要執行 DDE 的資料匯入,執行速度相差無幾是都可以接受的。
如大大所言,應該是 Range("B" & Rows.Count).End(xlUp).Row 方式稍快些,
Block 與 Lines 之處理或許後者為快吧! 多謝您的指導!
TOP
c_c_lai
發短消息
加為好友
c_c_lai
當前離線
UID
8671
帖子
2035
主題
24
精華
0
積分
2031
金錢
2031
點名
0
作業系統
Win7
軟體版本
Office2010
閱讀權限
100
性別
男
在線時間
2394 小時
註冊時間
2012-3-22
最後登錄
2024-2-1
博士班
帖子
2035
主題
24
精華
0
積分
2031
點名
0
作業系統
Win7
軟體版本
Office2010
閱讀權限
100
性別
男
註冊時間
2012-3-22
最後登錄
2024-2-1
4
#
發表於 2012-4-3 20:22
|
只看該作者
經過實際資料處理後,我把觀察兩種不同方式執行之結果敘述如下,以期幫助其他尚須瞭解的同學們來共同分享:
' 目前實際完整匯入資料範圍為: A1:Z1712 ; 但是從 X1:Z2000 欄位儲存的是計算公式(估計最多資料項為 2000 列,所以從 X1713:Z2000 其欄位值均為 0)
' 傳回 2000 列,轉述register313回帖:所有使用儲存格所組成四方形區域之最後一列之列號
' 傳回 1712 列,轉述register313回帖:B 欄所使用儲存格之最後一格之列號
Sub Test()
Dim total_row As Single
Cells(2, 22).Value = ActiveSheet.UsedRange.Rows.Count
Cells(2, 23).Value = Range("B" & Rows.Count).End(xlUp).Row
End Sub
複製代碼
' 執行結果:
'
' V (22) W (23)
' 1 --------------------
' 2 2000 1712 ' 1712 為實際匯入資料之行數
' 3
複製代碼
所以在此時實務處理上, 如採以 ActiveSheet.UsedRange.Rows.Count 方式,尚須再次過濾部分空白與非真實匯入資料的問題列。
再次感謝大大的解說!
TOP
靜思自在 :
好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表
下一主題
上一主題
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 • 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲