Board logo

標題: [分享] 使用 SpecialCells 方法的迷思 [打印本頁]

作者: GBKEE    時間: 2010-6-26 20:51     標題: 使用 SpecialCells 方法的迷思

本帖最後由 GBKEE 於 2011-11-21 12:01 編輯

如指定的範圍中的儲存格有隱藏時 此時使用到SpecialCells的方法
就會觸動到工作表的Worksheet_SelectionChange
ThisWorkbook 的 Workbook_SheetSelectionChange 兩程序
使用參數 xlCellTypeLastCell  
永遠是傳回  UsedRange 的範圍中最後一個 Cell,  你無法傳回 在一指定 的範圍中最後一個 Cell
  1. Sub Ex()
  2.     With ActiveSheet
  3.        .[A15] = "TEST"
  4.        .[H1] = "TEST"
  5.         MsgBox .[A:A].SpecialCells(xlCellTypeLastCell).Address
  6.         MsgBox .UsedRange.SpecialCells(xlCellTypeLastCell).Address
  7.         .[A15] = ""
  8.         .[A10] = "TEST"
  9.         MsgBox .[A:A].SpecialCells(xlCellTypeLastCell).Address
  10.         MsgBox .UsedRange.SpecialCells(xlCellTypeLastCell).Address
  11.    End With
  12. End Sub
複製代碼

作者: et5323    時間: 2010-9-13 18:25

第一次发现这个问题,谢谢!
作者: apolloooo    時間: 2011-1-14 23:25

試了一下,果然如此
作者: davidoff    時間: 2011-11-23 04:29

"使用參數 xlCellTypeLastCell 永遠是傳回  UsedRange 的範圍中最後一個 Cell"
除了這個須要特別注意之外,

.[A:A].SpecialCells(xlCellTypeLastCell).Address
.UsedRange.SpecialCells(xlCellTypeLastCell).Address
上面兩條真的是很少會去想到會有差別。
剛看到還想半天,怎麼得到的值會有差。
原來兩者的UsedRange是由不同的方式定義出來的。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)