簡體   English   中英

VBA將單元格分配為數組公式

[英]VBA to assign a cell as an array formula

我有一個名為“總計”的工作表,我必須重復該工作表,其中包含一個數組公式。 創建副本並重命名副本時,不再將數組公式作為數組輸入。

當我錄制宏時,其外觀如下所示。

Range("B55").Select
    Selection.FormulaArray = _
        "=IF(R1C1=""Total"",INDEX('[All_File.xlsm]Sheet1'!R4C5:R8C5,MATCH(R[-53]C,'[All_File.xlsm]Sheet1'!R4C2:R8C2,0)),INDEX('[All_File.xlsm]Sheet1'!R5,MATCH(R1C1&""Groups"",'[All_File.xlsm]Sheet1'!R4&'[All_File.xlsm]Sheet1'!R3,0)))"

與此相關的問題是它在公式中引用了文件。 文件引用可以更改,因此此錄制的宏將不起作用。

有沒有一種選擇單元格並將其作為數組輸入的方法?

例如:

 Range("B55").Select
        Selection.FormulaArray

該單元格正在被選擇並作為數組輸入。 再次,我與錄制的宏有關的問題是它正在存儲文件名,該文件名將更改,因此無法再次使用錄制的宏。

您可以在添加公式之前替換文件名:

Dim f As String, myFile

f = "=IF(R1C1=""Total"",INDEX('[{file}]Sheet1'!R4C5:R8C5,MATCH(R[-53]C," & _ 
    "'[{file}]Sheet1'!R4C2:R8C2,0)),INDEX('[{file}]Sheet1'!R5," & _ 
    "MATCH(R1C1&""Groups"",'[{file}]Sheet1'!R4&'[{file}]Sheet1'!R3,0)))"

myFile = 'get your filename here...    

Range("B55").FormulaArray = Replace(f, "{file}", theFilename)

暫無
暫無

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

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