作者home0303 (Blue night)
看板Office
標題[算表] VBA取得跨工作表的工作範圍
時間Tue Sep 18 01:22:22 2018
軟體:EXCEL
版本:2010
在VBA進行中 假如目前在工作表A
而我需要取得工作表B的工作範圍最後的列號
如何在不指向工作表B的情況下取得
也就是
Sheets("B").Select
末列 = ActiveCell.SpecialCells(xlLastCell).Row
我希望不要有 Sheets("B").Select 這一句
(某些時候因應自訂函數的需求)
請指導 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.122.36
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1537204945.A.D8E.html
1F:→ newacc: 你知道它的名字就可以了 09/18 03:39
2F:→ newacc: 末列 = Sheets("B").Cells.SpecialCells(...).Row 09/18 03:42
3F:→ soyoso: 自訂函數function的話,可以worksheet.usedrange或 09/18 09:22
4F:→ soyoso: range.find來取得;測試function和sub(程序)回傳上,於 09/18 09:22
5F:→ soyoso: range.specialcells(xllastcell).row的值有些不同 09/18 09:23
7F:推 newacc: 測試我的SpecialCells(xlLastCell)是回傳最右下角的格子 09/18 10:34
8F:→ newacc: 所謂最右下是指所有資料中欄號最大的一欄,和所有資料列號 09/18 10:34
9F:→ newacc: 最大的一列所產生的交集,有可能是空的,可以加.Address確 09/18 10:35
10F:→ newacc: 認其位置,S大code若加上.Address或.Row,結果仍為1嗎? 09/18 10:35
11F:→ newacc: 剛剛再測了一下,回傳格子是上次儲存到現在有使用過最右下 09/18 10:42
12F:→ newacc: 的格子,因此如果該格被刪除,在儲存前仍會指向該格,而儲 09/18 10:42
13F:→ newacc: 存後再次呼叫程式,才會指回資料最右下的格子,這點在應用 09/18 10:43
14F:→ newacc: 上可能產生一些bug 09/18 10:43
15F:推 newacc: 再測了一次,可以用Sheets("B").UsedRange.SpeicalCells() 09/18 10:50
16F:→ newacc: 代替,會隨資料範圍變動而改變 09/18 10:51
18F:→ soyoso: row為1,address為$1:$1048576,sub程序則是可得到h13 09/18 10:58
19F:→ home0303: 好的 謝謝兩位!! 09/18 15:39