Board logo

標題: [發問] 請問vba使用中括號range[],代表什麼意思 [打印本頁]

作者: cmo140497    時間: 2011-3-16 13:13     標題: 請問vba使用中括號range[],代表什麼意思

不好意思,請問vba使用中括號range[],代表什麼意思?為何不能只使用()呢?
作者: GBKEE    時間: 2011-3-16 14:31

本帖最後由 GBKEE 於 2011-3-16 14:33 編輯

回復 1# cmo140497
  1. Sub Ex()
  2.     Dim A As String
  3.    
  4.     A = "a1:a10"
  5.     Range(A) = 10   '->Range("a1:a10") 接受變數的字串,工作表有反應.
  6.    
  7.     A = "B1:B10"
  8.     [A] = 10        '->["a1:a10"] 不接受變數的字串,工作表沒反應.
  9.    
  10.     [D1:D10] = 10    'D1:D10 為工作表的範圍  ,工作表有反應.
  11.    
  12.     ActiveWorkbook.Names.Add Name:="TEST", RefersTo:=Sheets("Sheet2").Range("G1:G10")
  13.     'Sheet2選定範圍,定義名稱 為TEST
  14.    
  15.     [TEST] = 10    '接受工作表定義名稱的範圍 ,Sheet2 工作表有反應.
  16. End Sub
複製代碼

作者: cmo140497    時間: 2011-3-18 08:22

部份了解,另再試問前輩,[A] = 10        '->["a1:a10"] 不接受變數的字串,工作表沒反應.

不接受變數的字串,指的是代表其內含值,但不顯示在工作表指定之範圍內嗎?
作者: Hsieh    時間: 2011-3-18 08:48

回復 3# cmo140497

中括號的使用,簡單的說是名稱包裝
中括號內的文字敘述,就是活頁簿中的名稱
名稱在APPLICATION中他就是一個變數名稱的性質
[A]這樣的寫法,你必需再工作表中有設置一個名為A的定義名稱
[A]就會指向該定義名稱
同樣道理
[A1:A10]這樣就會指到A1:A10的範圍
中括號中是不允許使用字串常數的
當你用雙引號把名稱包覆時["A1:A10"],此時是個字串型態而不是NAME物件
這樣就不被EXCEL所接受
作者: cmo140497    時間: 2011-3-22 10:49

感謝版主的指明,又學一招了,太感謝您了!




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