0
我想申請一個ARRAYFORMULA的過濾範圍 - 即增加2到每個細胞中的過濾設置rng
並粘貼到結果的rng2
相鄰小區 - 這樣的:Excel VBA中ARRAYFORMULA與過濾範圍太長
Set rng = Range("M2:M" & Cells(Rows.Count, "M").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
Set rng2 = rng.Offset(0, 1)
rng2.FormulaArray = "=" & rng.Address & "+ 2"
這給出了一個錯誤 「無法設置Range類FormulaArray屬性」
這意味着字符串太長(大於255)。 rng.Address
是
$M$28,$M$480,$M$874:$M$875,$M$889,$M$1111,$M$1302,$M$1410,$M$1413:$M$1415,$M$1994,$M$2319,$M$2322:$M$2323,$M$2327:$M$2329,$M$2385,$M$2884,$M$3049,$M$3130,$M$3192,$M$3242,$M$3287:$M$3288,$M$3406,$M$3418,$M$3423,$M$3610,$M$4001,$M$4008,$M$4104,$M$4145,$M$4374
我見過使用替代公式一些帖子,但是這可能是一個不同的情況下,在這裏:
rng
會的每次迭代改變環路不同的過濾器是應用rng.address
方法不會捕獲所有單元格:我可以看到在已過濾的excel中$M$4374
之後,此範圍內有更多單元格。我用MsgBox(rng.address)
來查看該範圍內的所有單元格......有沒有辦法查看該範圍內的所有單元格,還是有rng.address
的字符上限?
問題?我已經解決了類似的問題(特別是在數據驗證中),方法是選擇所需的所有單元格並將其標記爲「a」。 – Cyril
您是否試圖將2添加到左側的單元格?爲什麼數組公式,爲什麼不只是'rng2.FormulaR1C1 =「= RC [-1] + 2」'? –
@ScottCraner:很酷,非常感謝!我只是想着如何在Excel中做到這一點(與ArrayFormula),並試圖將其翻譯成VBA,但後來遇到了這個繁瑣的255字符限制。你的方法要容易得多! – SuperMartingale