1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 在VBA中,Range("A2:C6").Range("B2") 和 Range("B2") 是有不同的。讓我們來詳細解釋這兩者的差異: Range("B2") 這是直接引用工作表上的單元格 B2。 如果你在某個子例程中寫 Range("B2"),它會指向整個工作表上的單元格 B2,不管你在哪裡使用這段代碼。 Range("A2:C6").Range("B2") 這是一個嵌套的範圍引用。 當你使用 Range("A2:C6").Range("B2") 時,它實際上是在 Range("A2:C6") 這個範圍內尋找一個相對的範圍。 Range("B2") 在 Range("A2:C6") 內是相對於 A2 的,所以實際引用的是 Range("B3")(因為相對於 A2,B2 在第二列和第二行)。 具體例子 假設我們有以下代碼: vba Copy code Sub TestRanges() ' 這會選擇整個工作表上的單元格 B2 Range("B2").Select ' 這會選擇範圍 A2:C6 內相對於 A2 的單元格 B2,實際上是工作表上的單元格 B3 Range("A2:C6").Range("B2").Select End Sub 結論 Range("B2") 直接引用的是工作表上的 B2。 Range("A2:C6").Range("B2") 引用的是範圍 A2:C6 內相對於範圍起始點 A2 的相對位置 B2,實際上是工作表上的 B3。 理解這個區別對於在 VBA 中正確操作範圍是非常重要的,特別是在處理嵌套範圍或相對範圍時。 |
Direct link: https://paste.plurk.com/show/CJIN2iJ0lvwBD29Rrcz3