“資料處理、資料分析能力已然成為2018年職場新的核心競爭優勢”
“VBA小白學習的基礎知識點, 大神慎入!”
儲存格、區域、工作表、工作簿
儲存格可以是物件也可以是工作表的屬性
在VBA代碼中, 該如何引用、選定一個儲存格呢?以及如何對周邊區域進行操作
1、引用當前工作表中的單個儲存格(例如引用儲存格C3)
可以使用下面列舉的任一方式對當前工作表中的儲存格(C3)進行引用:
(1) Range("C3")
(2) [C3]
(3) Cells(3, 3)
(4) Cells(3, "C")
(5) Range("C4").Offset(-1)
Range("D3").Offset(, -1)
Range("A1").Offset(2, 2)
(6) 如果C3為目前的儲存格, 則可使用:ActiveCell
(7) 如果C3儲存格命名為“Range1”, 還可使用:Range("Range1")或[Range1]
(8) Cells(4, 3).Offset(-1)
(9) Range("A1").Range("C3")
2、引用當前工作表中的B2:D6儲存格區域, 有哪些方式?
可以使用下面列舉的任一方式對當前工作表中儲存格區域B2:D6進行引用:
(1) Range("B2:D6")
(2) Range("B2", "D6")
(3) [B2:D6]
(4) Range(Range("B2"),Range("D6"))
(5) Range(Cells(2, 2), Cells(6, 4))
(6) 如果B2:D6區域命名為“MyRange”, 還可以使用下面的語句引用該區域:
① Range("MyRange")
② [MyRange]
(7) Range("B2").Resize(5, 3)
(8) Range("A1:C5").Offset(1, 1)
(9) 如果儲存格B2為目前的儲存格, 則可使用語句:Range(ActiveCell, ActiveCell.Offset(4, 2))
(10) 如果儲存格D6為目前的儲存格, 還可以使用語句:Range("B2", ActiveCell)
3、使用變數實現對當前工作表中不確定儲存格區域的引用
有時, 需要依次獲取工作表中特定區域內的儲存格, 通常可以用下面的幾種方式:
(1) Range(“A” & i)
(2) Range(“A” & i & “:C”& i)
(3) Cells(i, 1)
(4) Cells(i, j)
其中, i、j為變數, 在迴圈語句中指定i和j的範圍後, 依次獲取相應儲存格。
4、如何擴展引用當前工作表中的儲存格區域?
可以使用Resize屬性, 如下:
(1) ActiveCell.Resize(4, 4), 表示自目前的儲存格開始創建一個4行4列的區域。
(2) Range("B2").Resize(2, 2), 表示創建B2:C3儲存格區域。
(3) Range("B2").Resize(2), 表示創建B2:B3儲存格區域。
(4) Range("B2").Resize(, 2), 表示創建B2:C2儲存格區域。
如果是在一個儲存格區域(如B3:E6), 或一個命名區域中(如將儲存格區域B3:E6命名為“MyRange”)使用Resize屬性, 只是相對于儲存格區域左上角儲存格擴展區域,
代碼Range("C3:E6").Resize(,2), 表示儲存格區域C3:D6, 並且擴展的儲存格區域可不在原儲存格區域內。
因此, 可以知道Resize屬性是相對於當前作用儲存格或某儲存格區域中左上角儲存格按指定的行數或列數擴展儲存格區域。
5、在當前工作表中基於目前的儲存格區域或指定儲存格區域處理其它儲存格區域
可以使用Offset屬性:
(1) Range("A1").Offset(2, 2), 表示儲存格C3。
(2) ActiveCell.Offset(, 1), 表示目前的儲存格下一列的儲存格。
(3) ActiveCell.Offset(1), 表示目前的儲存格下一行的儲存格。
(4) Range("C3:D5").Offset(, 1), 表示儲存格區域D3:E5, 即將整個區域偏移一列。
從上面的代碼示例可知, Offset屬性從所指定的儲存格開始按指定的行數和列數偏移, 從而到達目的儲存格, 但偏移的行數和列數不包括指定儲存格本身。
是不是很淺顯易懂呢?今天的知識點你喜歡嗎?喜歡就分享, 喜歡就收藏, 接下來還有更精彩的, 敬請關注吧!
和所有的小白一起努力, 待他日步入大神行列, 也要豪氣雲幹提劍笑滄海。
會了麼?
動手操作才是硬道理