[英]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
您可以結合使用Address
和Indirect
,如下所示:
=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.