2015-09-11 40 views
0

我不太確定爲什麼會出現這種情況,但似乎無法在線識別解決方案。我只是試圖將一些公式從一張表複製到另一張表中(公式將在目標表中爲.FillDown),但我特別關注一個公式的問題。我相信這是因爲公式是一個數組,但即使當我使用.Range.FormulaArray時,也會收到相同的#REF!錯誤。以下是公式和轉移它的腳本:數組公式導致#REF錯誤

(注意:公式中的參考對目標工作表是準確的,而不是原始工作表 - 公式保留在指定工作表中,因爲所有關於目的地片被刪除時關閉工作簿以減小文件大小)

擬式

IF(LEFT(H2,1)="2","Platforms",INDEX('Units - Job Numbers'!$A$2:$A$200,SMALL(IF('Units - Job Numbers'!$B$2:$CO$200=I2,ROW('Units - Job Numbers'!$B$2:$CO$200)-ROW('Units - Job Numbers'!$B$2)+1),1))) 

式轉印之後

=IF(LEFT(H2,1)="2","Platforms",INDEX('Units - Job Numbers'!#REF!,SMALL(IF('Units - Job Numbers'!#REF!=I2,ROW('Units - Job Numbers'!#REF!)-ROW('Units - Job Numbers'!#REF!)+1),1))) 

VBA

'Copy and Extend Raw WIP Data Formulas 
With ThisWorkbook.Worksheets("Raw WIP Data") 
.Range("AE2:AL2").Formula = ThisWorkbook.Worksheets("Formulas").Range("A7:H7").Formula 
.Range("AM2").Formula = ThisWorkbook.Worksheets("Formulas").Range("I7").Formula 
.Range("AE2:AM" & WIPLastRow).FillDown 
.Range("AE2:AM" & WIPLastRow).Copy 
.Range("AE2:AM" & WIPLastRow).PasteSpecial xlPasteValues 
Application.CutCopyMode = False 

ActiveSheet.Cells(1, 1).Select 

End With 

當公式傳送到目的地片,所有在引用的 '單元 - 作業編號'片成爲#REF!。奇怪的是,即使公式在執行宏之前是正確的,原始公式也有#REF!錯誤。有什麼建議麼?

+0

你可以在這裏發佈你的代碼嗎?你在單元格內獲得的公式是什麼? – ManishChristian

+0

我不會包含我的整個腳本,因爲它非常冗長,除此之外,我沒有任何問題。從原始單傳輸後,我會包含該公式。 – CJK

+0

你有一張名爲'Units - Job Numbers'的工作表嗎? – RBarryYoung

回答

1

這是我最好的猜測,是發生了什麼......您是否可能在複製公式的代碼行之前或之後刪除'Units - Job Numbers'表中的單元格?如果是這樣,它可能會使參考無效。請檢查您的代碼以查找刪除'Units - Job Numbers'中的單元格的地方。如果您要刪除單元格,請在代碼後立即設置一個斷點並檢查原始公式,然後您會看到引用轉向#REF(然後在您的FormulasRaw WIP Data工作表中,如果它位於副本之後)。

+0

謝謝你的回答,我在編輯我的帖子後立即意識到這一點,然後嘗試糾正它。我仍然有一些問題與索引的所有價值,但至少現在我沒有遇到'#REF!!錯誤。 – CJK