所以我試圖用這個子程序做幾件事情,但不能讓VBA執行.FormulaArray函數。在數組公式中部署VBA單元格參考
- 創建一個名爲範圍內使用偏移& LASTROW功能
- 使用單元格引用插入到數組公式
-
Sub namedrange()
Dim firstrow As Long
Dim LastRow As Long
Dim ColToLetter, absolute, Title, mc, mc1
ActiveCell.Offset(0, -1).Select
absolute = ActiveCell.Address
LastRow = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
firstrow = ActiveCell.Row
ColLetter = Mid(ActiveCell.Address, 2, 1)
ActiveSheet.Range(ColLetter & firstrow & ":" & ColLetter & LastRow).Name = Range(ColLetter & "1").Value
Title = Range(ColLetter & "1").Value
ActiveCell.Offset(0, 1).Select
mc = ActiveCell.Offset(-1, 0).Address
mc = Mid(mc, 2, 3)
mc1 = Replace(mc, "$", "")
ActiveCell.FormulaArray= "=IF(ROWS(mc & "":"" & mc1)>SUM(IF(FREQUENCY(IF(Title<>"""",MATCH(Title,Title,0)),ROW(Title)-ROW(absolute)+1),1)),"""",INDEX(Title,SMALL(IF(FREQUENCY(IF(Title<>"""",MATCH(Title,Title,0)),ROW(Title)-ROW(absolute)+1),ROW(Title)-ROW(absolute)+1),ROWS(mc & "":"" & mc1))))"
End Sub
公式欄顯示什麼VBA函數正在輸出,這不是我想要的。我不知道爲什麼它不會輸出我創建的引用,如mc應該是「$ A $ 2」而不是「mc」。
而且當我嘗試執行FormulaArray代碼中,我得到一個運行時錯誤1004「無法設置範圍類的FormulaArray屬性」
在你的語句中'行(mc&「」:「」&mc1)'你的雙引號計算爲兩個空字符串。真正使用CHR(34)來獲取字符串中的引號。 – Kyle 2015-03-02 19:43:23