[英]Variable in Array returns “Unable to set the FormulaArray property of the Range class”
我當前的vba中有一個部分可以遍歷數組公式中的10000行,並且在另一個選項卡的表中,它可以根據其位置將單元格值放置到行頭中...代碼如下所示:
Selection.FormulaArray = _
"=INDEX('Sheet1'!R1C1:R10000C2,SMALL(IF(ISNUMBER(SEARCH(""*__________*"",'Sheet1'!R1C1:R10000C2)),ROW('Sheet1'!R1C1:R10000C2)),ROW(R[-8]))+1,1)"
襯里的標題長度在數據之間變化,這就是為什么我必須要做“包含”與“相等”的原因。 這對我來說很有效,但是要花一些時間才能運行,我希望減少運行時間。 在大多數情況下,當我將數據復制到Sheet1時,它遠遠少於10000行(但是對於某些數據,我需要那么高)。 我試圖在UsedRange中使用變量,但是當我將其放在數組公式中時,標題出現錯誤。 這是帶有變量的代碼:
Dim LR As Long
LR = Worksheets("Sheet1").UsedRange.Rows.Count
Selection.FormulaArray = _
"=INDEX('Sheet1'!R1C1:R1C2 & LR,SMALL(IF(ISNUMBER(SEARCH(""*__________*"",'Sheet1'!R1C1:R1C2 & LR)),ROW('Sheet1'!R1C1:R1C2 & LR)),ROW(R[-8]))+1,1)"
誰能幫助我了解為什么會出現此錯誤? 謝謝。
你需要采取LR
外面"
你是它作為最后一行的引用每次。
另外,您只是將LR
放在最后,需要將常量"R10000C2"
替換為"R" & LR & "C2"
。
Selection.FormulaArray = _
"=INDEX('Sheet1'!R1C1:R" & LR & "C2 ,SMALL(IF(ISNUMBER(SEARCH(""*__________*"",'Sheet1'!R1C1:R" & LR & "C2)),ROW('Sheet1'!R1C1:R" & LR & "C2)),ROW(R[-8]))+1,1)"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.