作者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/cn.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