[算表] VBA取得跨工作表的工作範圍

看板Office作者 (Blue night)時間5年前 (2018/09/18 01:22), 編輯推噓2(2017)
留言19則, 3人參與, 5年前最新討論串1/1
軟體:EXCEL 版本:2010 在VBA進行中 假如目前在工作表A 而我需要取得工作表B的工作範圍最後的列號 如何在不指向工作表B的情況下取得 也就是 Sheets("B").Select 末列 = ActiveCell.SpecialCells(xlLastCell).Row 我希望不要有 Sheets("B").Select 這一句 (某些時候因應自訂函數的需求) 請指導 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.122.36 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1537204945.A.D8E.html

09/18 03:39, 5年前 , 1F
你知道它的名字就可以了
09/18 03:39, 1F

09/18 03:42, 5年前 , 2F
末列 = Sheets("B").Cells.SpecialCells(...).Row
09/18 03:42, 2F

09/18 09:22, 5年前 , 3F
自訂函數function的話,可以worksheet.usedrange或
09/18 09:22, 3F

09/18 09:22, 5年前 , 4F
range.find來取得;測試function和sub(程序)回傳上,於
09/18 09:22, 4F

09/18 09:23, 5年前 , 5F
range.specialcells(xllastcell).row的值有些不同
09/18 09:23, 5F

09/18 09:23, 5年前 , 6F

09/18 10:34, 5年前 , 7F
測試我的SpecialCells(xlLastCell)是回傳最右下角的格子
09/18 10:34, 7F

09/18 10:34, 5年前 , 8F
所謂最右下是指所有資料中欄號最大的一欄,和所有資料列號
09/18 10:34, 8F

09/18 10:35, 5年前 , 9F
最大的一列所產生的交集,有可能是空的,可以加.Address確
09/18 10:35, 9F

09/18 10:35, 5年前 , 10F
認其位置,S大code若加上.Address或.Row,結果仍為1嗎?
09/18 10:35, 10F

09/18 10:42, 5年前 , 11F
剛剛再測了一下,回傳格子是上次儲存到現在有使用過最右下
09/18 10:42, 11F

09/18 10:42, 5年前 , 12F
的格子,因此如果該格被刪除,在儲存前仍會指向該格,而儲
09/18 10:42, 12F

09/18 10:43, 5年前 , 13F
存後再次呼叫程式,才會指回資料最右下的格子,這點在應用
09/18 10:43, 13F

09/18 10:43, 5年前 , 14F
上可能產生一些bug
09/18 10:43, 14F

09/18 10:50, 5年前 , 15F
再測了一次,可以用Sheets("B").UsedRange.SpeicalCells()
09/18 10:50, 15F

09/18 10:51, 5年前 , 16F
代替,會隨資料範圍變動而改變
09/18 10:51, 16F

09/18 10:56, 5年前 , 17F
09/18 10:56, 17F

09/18 10:58, 5年前 , 18F
row為1,address為$1:$1048576,sub程序則是可得到h13
09/18 10:58, 18F

09/18 15:39, 5年前 , 19F
好的 謝謝兩位!!
09/18 15:39, 19F
文章代碼(AID): #1Rd-BHsE (Office)