Discussion:
偵測目前的工作表資料範圍
(时间太久无法回复)
Rita
2008-08-28 05:24:00 UTC
Permalink
請問---
如何利用VBA偵測目前的工作表內的資料範圍, 如: 最後一行數? 最後一欄數?
我知道可以使用 -- Range("A1").CurrentRegion.Rows.Count, 但如果資料中間有許多
空行則此法無法適用, 不知是否還有其他方法?
請不吝指教, 謝謝!!
(Office XP)
--
Best regards,
Rita
chijanzen
2008-08-28 09:50:18 UTC
Permalink
你好:

請參考

Sub test()
'取得目前範圍
MsgBox ActiveSheet.UsedRange.Address
'取得目前範圍第一個儲存格的欄
MsgBox ActiveSheet.UsedRange.Column
'取得目前範圍第一個儲存格的列
MsgBox ActiveSheet.UsedRange.Column
'取得目前範圍最後一欄
MsgBox Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'取得目前範圍最後一列
MsgBox Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Row

End Sub
--
天行健,君子以自強不息
地勢坤,君子以厚德載物

http://chijanzen.net
Post by Rita
請問---
如何利用VBA偵測目前的工作表內的資料範圍, 如: 最後一行數? 最後一欄數?
我知道可以使用 -- Range("A1").CurrentRegion.Rows.Count, 但如果資料中間有許多
空行則此法無法適用, 不知是否還有其他方法?
請不吝指教, 謝謝!!
(Office XP)
--
Best regards,
Rita
Rita
2008-08-28 11:41:01 UTC
Permalink
非常感謝您的解答, 可否再請問--
如果取得了目前範圍最後一欄為"38", 要如何將其轉換為 "AL"欄?
--
Best regards,
Rita


"chijanzen" 來函:
Post by chijanzen
請參考
Sub test()
'取得目前範圍
MsgBox ActiveSheet.UsedRange.Address
'取得目前範圍第一個儲存格的欄
MsgBox ActiveSheet.UsedRange.Column
'取得目前範圍第一個儲存格的列
MsgBox ActiveSheet.UsedRange.Column
'取得目前範圍最後一欄
MsgBox Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'取得目前範圍最後一列
MsgBox Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Row
End Sub
--
天行健,君子以自強不息
地勢坤,君子以厚德載物
http://chijanzen.net
Post by Rita
請問---
如何利用VBA偵測目前的工作表內的資料範圍, 如: 最後一行數? 最後一欄數?
我知道可以使用 -- Range("A1").CurrentRegion.Rows.Count, 但如果資料中間有許多
空行則此法無法適用, 不知是否還有其他方法?
請不吝指教, 謝謝!!
(Office XP)
--
Best regards,
Rita
chijanzen
2008-08-28 11:55:01 UTC
Permalink
你好:

我有作一個自訂函數

請參考範例及說明

http://chijanzen.net/wp/?p=155
--
天行健,君子以自強不息
地勢坤,君子以厚德載物

http://chijanzen.net
Post by Rita
非常感謝您的解答, 可否再請問--
如果取得了目前範圍最後一欄為"38", 要如何將其轉換為 "AL"欄?
--
Best regards,
Rita
"chijanzen" 來函:
Post by chijanzen
請參考
Sub test()
'取得目前範圍
MsgBox ActiveSheet.UsedRange.Address
'取得目前範圍第一個儲存格的欄
MsgBox ActiveSheet.UsedRange.Column
'取得目前範圍第一個儲存格的列
MsgBox ActiveSheet.UsedRange.Column
'取得目前範圍最後一欄
MsgBox Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'取得目前範圍最後一列
MsgBox Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Row
End Sub
--
天行健,君子以自強不息
地勢坤,君子以厚德載物
http://chijanzen.net
Post by Rita
請問---
如何利用VBA偵測目前的工作表內的資料範圍, 如: 最後一行數? 最後一欄數?
我知道可以使用 -- Range("A1").CurrentRegion.Rows.Count, 但如果資料中間有許多
空行則此法無法適用, 不知是否還有其他方法?
請不吝指教, 謝謝!!
(Office XP)
--
Best regards,
Rita
天道無常
2008-09-03 02:20:15 UTC
Permalink
可至下址參考:

http://www.ozgrid.com/VBA/ExcelRanges.htm
Post by Rita
請問---
如何利用VBA偵測目前的工作表內的資料範圍, 如: 最後一行數? 最後一欄數?
我知道可以使用 -- Range("A1").CurrentRegion.Rows.Count, 但如果資料中間有許多
空行則此法無法適用, 不知是否還有其他方法?
請不吝指教, 謝謝!!
(Office XP)
zhang
2008-09-05 09:36:24 UTC
Permalink
×îºóÒ»ÐÐ=Cells(Rows.Count, 1).End(xlUp).Row
×îºóÒ»ÁÐ = Cells(1, Columns.Count).End(xlToLeft).Column
Ո†–---
ÈçºÎÀûÓÃVBA‚ÉœyÄ¿Ç°µÄ¹€×÷±íƒÈµÄÙYÁϹ ‡ú, Èç: ×îááÒ»ÐДµ? ×îááÒ»™Ú”µ?
ÎÒÖªµÀ¿ÉÒÔʹÓà -- Range("A1").CurrentRegion.Rows.Count, µ«Èç¹ûÙYÁÏÖÐégÓÐÔS¶à
¿ÕÐЄtŽË·šŸo·šßmÓÃ, ²»ÖªÊÇ·ñ߀ÓÐÆäËû·œ·š?
Ո²»ÁßÖžœÌ, ÖxÖx!!
(Office XP)
--
Best regards,
Rita
shchen
2008-11-05 08:13:01 UTC
Permalink
Post by Rita
請問---
如何利用VBA偵測目前的工作表內的資料範圍, 如: 最後一行數? 最後一欄數?
我知道可以使用 -- Range("A1").CurrentRegion.Rows.Count, 但如果資料中間有許多
空行則此法無法適用, 不知是否還有其他方法?
請不吝指教, 謝謝!!
(Office XP)
--
Best regards,
Rita
前人已經有說了,配合在一起的話即可得資料範圍
先用
Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Row 取得最後一列 假設第100列有資料.
再用Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column 取得最後一欄 假設第11欄有資料
11轉換成欄號是K,兩者相組合等於A1~K100,是有資料的範圍,不論中間含有多少空行
Loading...