題 以編程方式在Excel中選擇範圍


我知道如何做範圍 D3:D15。但我已經開始使用引用和地址,所以我將這些起點和終點作為地址。當我需要將範圍輸入到另一個公式中時,我不知道如何使用這些地址指定範圍,例如 SUM

我曾希望只放一個冒號(““)兩個地址之間會做同樣的事情,但事實並非如此。

我正在查看我的真實電子表格中的值,但為簡單起見,假設任何硬編碼的數字實際上是其他計算的結果。對於類似的東西 E3:J7, 我想要:

地址(3,5):地址(7,10)


4
2018-03-07 19:37


起源




答案:


你提到了“另一個公式”,所以我猜你想在工作表公式中這樣做(而不是在VBA函數或子程序中)。讓我們從小做起。 Excel支持A1(一個)式參考和R1C1(RñCñ)式參考。您使用的所有示例(D3D15E3J7,等等)是A1風格的參考 - 一列 信件 (或可能是一系列字母;列XY,和Z 接下來是AAABAC等等)後跟一個行號。 R1C1樣式的引用幾乎是不言自明的 - 它們是由行號和列構建的 ,由字母分隔R 和C。 所以 E3 相當於 R3C5 (第3行,第5欄)和 J7 相當於 R7C10

我希望你能多說一些你已經在做的事情,所以我知道我沒有必要向你解釋。我希望你知道,在一個公式中, INDIRECT("E3") 或多或少相當於 E3,除非,當你打電話 INDIRECT,可以計算字符串參數。也許你不知道

INDIRECT("R3C5", FALSE)

同樣等同於 E3

INDIRECT 僅提供對單個單元格的引用。 從那個到範圍,我們使用 OFFSET 功能。它的一般格式是

OFFSET(base_cell_reference,row_offset,column_offset,高度(行),寬度(列))

所以,得到 E3:J7, 我們的確是

OFFSET(INDIRECT("R" & 3 & "C" & 5, FALSE),  0,  0,  7-3+1,  10-5+1)

其中所有數字都可以是公式(例如,對其他單元格的引用)。 (注意: +1這是針對標準的“fence-post問題” - 從第3行開始並且包括第7行的範圍是5行高,而不是4。)上述表達式可以在任何可以使用簡單範圍的地方使用;例如,作為參數 SUM


另一種解決問題的方法可能是使用命名單元格。如果你給細胞 E3 名字 Fred,給細胞 J7 名字 Barney那麼你可以說 SUM(Fred:Barney)


3
2018-03-07 22:58





看看吧 細胞 命令。您可以使用數值指定行和列。

Sub test()
' select range E3 to J3
Range(Cells(3, 5), Cells(3, 10)).Select

End Sub

0
2018-03-07 20:21