簡體   English   中英

Excel中的VBA樣式范圍選擇

[英]VBA-style range selection in Excel

在電子表格公式中(即SumIfs ),我希望能夠使用其定界符而不是A1:A3456樣式來選擇列范圍,就像我在VBA [Range("A1:A3456")~Range(Cells(1,1),Cells(3456,1))]

如果這不可能,是否有任何解決方法可使用“匹配”函數的結果來獲取我要應用某些條件的列號?

我的功能看起來像

=Sumifs(A2:A10;*{range(cells(1,match(Z5;A1:T1)), cell(10,match(Z5;A1:T1))}*,"="&1)

...如果我可以在電子表格中添加vba公式。

使用偏移量,它比VBA中的工作表功能豐富得多。

句法

偏移量(參考,行,列,[高度],[寬度])

OFFSET函數語法具有以下參數:

需要參考。 您要作為偏移量基准的參考。 引用必須指一個單元格或相鄰單元格的范圍; 否則,OFFSET返回#VALUE! 錯誤值。

必填行。 您希望左上方單元格引用的行數(上下)。 使用5作為rows參數指定引用中的左上單元格在引用下方五行。 行可以是正數(表示在起始引用下方)或負數(表示在起始引用上方)。

必需的列。 您要引用結果的左上角單元格的左側或右側的列數。 使用5作為cols參數指定參考中的左上單元格在參考的右側五列。 Cols可以為正(表示起始參考的右側)或負(表示起始參考的左側)。

高度可選。 您希望返回的引用成為的高度(以行數為單位)。 高度必須為正數。

寬度可選。 您希望返回的引用的寬度(以列數為單位)。 寬度必須為正數。

來自https://support.office.com/en-us/article/OFFSET-function-c8de19ae-dd79-4b9b-a14e-b4d906d11b66

您可以結合使用AddressIndirect ,如下所示:

=SUM(INDIRECT(ADDRESS(1,1) & ":" & ADDRESS(3456,1)))

等效於=SUM(A1:A3456)

ADRESS從樣式Cells(i,j)為樣式A1

INDIRECT用於將結果字符串解釋為范圍地址。

這里的SUM是用法示例。

好吧,這有點丑陋,但是如果您偶爾要這樣做並且不想完全轉換為RC-style ,那可能是最簡單的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM