樓主需要搞清VBA中的幾個概念:① 變數(Variable)② 物件(object)③ 值(Value)Range是一個Excel工作表中的單元格區域【物件】。可以是一個單獨的單元格如A1,也可以是一個矩形單元格局域,如C1:D5還可以是一個複數局域如:A1,C1:D5,F2:G7那麼,Range區域物件有很多不同的屬性(行、列、顏色等)及其屬性的值。首先、當使用Range().Value屬性值時,我們就會明確得到Range單元格中的值(內容),具體如下:① 如果該Range區域只有一個單獨的單元格,那麼:變數 = Range.Value 時會得到該單獨單元格的內容值,如=12 或 ="abc"② 如果該Range區域是一個矩形單元格區域,那麼:變數 = Range.Value 時會得到該矩形單元格區域的一個二維陣列值。③ 如果該Range區域是一個複合Union區域,那麼:變數 = Range.Value 時會得到:1. 如果該複合區域的第一個區域是一個單獨單元格區域,則同①得到該單元格的內容。2. 如果該複合區域的第一個區域是一個矩形單元格區域,則同②得到一個二維陣列值。…………以上是使用了Range().Value,那麼如果等式左邊是一個Variant變數,則.Value可以省略。即:【直接引用Range()時,VBA預設會獲取Range的.Value屬性並得到單獨單元格的內容或矩形區域的二維陣列內容】以上即為引用Range()並且不需要寫明.Value時的應用範圍。限制條件是:引用Range()的結果將被作為Variant變數使用、並且被用作單元格的內容(單獨單元格區域)或矩形區域的二維陣列內容。…………反過來說,下面情形,必須使用.Value屬性:① 變數不是Variant類性,而是object物件時,必須新增.Value才能得到單元格內容值否則只能得到Range物件,並可能因為等式兩邊的變數型別不符合而報錯!② 變數已經明確變數型別,如要求文字字串型別時,Dim t as String不能使用 t = Range() 來得到一個矩形區域的二維陣列內容以上
樓主需要搞清VBA中的幾個概念:① 變數(Variable)② 物件(object)③ 值(Value)Range是一個Excel工作表中的單元格區域【物件】。可以是一個單獨的單元格如A1,也可以是一個矩形單元格局域,如C1:D5還可以是一個複數局域如:A1,C1:D5,F2:G7那麼,Range區域物件有很多不同的屬性(行、列、顏色等)及其屬性的值。首先、當使用Range().Value屬性值時,我們就會明確得到Range單元格中的值(內容),具體如下:① 如果該Range區域只有一個單獨的單元格,那麼:變數 = Range.Value 時會得到該單獨單元格的內容值,如=12 或 ="abc"② 如果該Range區域是一個矩形單元格區域,那麼:變數 = Range.Value 時會得到該矩形單元格區域的一個二維陣列值。③ 如果該Range區域是一個複合Union區域,那麼:變數 = Range.Value 時會得到:1. 如果該複合區域的第一個區域是一個單獨單元格區域,則同①得到該單元格的內容。2. 如果該複合區域的第一個區域是一個矩形單元格區域,則同②得到一個二維陣列值。…………以上是使用了Range().Value,那麼如果等式左邊是一個Variant變數,則.Value可以省略。即:【直接引用Range()時,VBA預設會獲取Range的.Value屬性並得到單獨單元格的內容或矩形區域的二維陣列內容】以上即為引用Range()並且不需要寫明.Value時的應用範圍。限制條件是:引用Range()的結果將被作為Variant變數使用、並且被用作單元格的內容(單獨單元格區域)或矩形區域的二維陣列內容。…………反過來說,下面情形,必須使用.Value屬性:① 變數不是Variant類性,而是object物件時,必須新增.Value才能得到單元格內容值否則只能得到Range物件,並可能因為等式兩邊的變數型別不符合而報錯!② 變數已經明確變數型別,如要求文字字串型別時,Dim t as String不能使用 t = Range() 來得到一個矩形區域的二維陣列內容以上