簡體   English   中英

數組中的變量返回“無法設置Range類的FormulaArray屬性”

[英]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.

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