2017-09-01 164 views
0

當試圖將我的數組轉儲到一個範圍時,我得到一個錯誤1004,但只有在包含括號的數組中有一個公式時。將公式分配給範圍的公式時,VBA錯誤1004

Dim DataArray(27, 11) as Variant 
Dim wod as Worksheet 
dim rng as Range 
Dim d as Range 
Dim ArrayEnd as Integer 

這是我的陣列

For y = 0 To lastrowo 
        If Not IsEmpty(d.Offset(y, 0).Value) Then 
         DataArray(y, 0) = d.Offset(y, 0).Value2 
         DataArray(y, 1) = d.Offset(y, 10).Value2 
         DataArray(y, 2) = d.Offset(y, 14).Value2 
         DataArray(y, 3) = d.Offset(y, 16).Value2 
         DataArray(y, 4) = d.Offset(y, 19).Value2 
         DataArray(y, 5) = d.Offset(y, 22).Value2 
         DataArray(y, 6) = d.Offset(y, 25).Value2 
         DataArray(y, 7) = "=ROUND(F" & y + 3 & "-G" & y + 3 & ";0)" 
         DataArray(y, 8) = "=G" & y + 3 
         DataArray(y, 9) = d.Offset(y, 28).Value2 
         DataArray(y, 10) = d.Offset(y, 31).Value2 
         DataArray(y, 11) = d.Offset(y, 36).Value2 

這是有問題的部分,如果刪除括號和 「;」它一切正常。

DataArray(y, 7) = "=ROUND(F" & y + 3 & "-G" & y + 3 & ";0)" 

而且這是我得到的錯誤

Set rng = wod.Range("A3:L" & ArrayEnd + 3) 
         rng = DataArray 

我甚至試過這種變異

"=ROUND" & Chr(40) & "F" & y + 3 & "-G" & y + 3 & Chr(59) & "0" & Chr(41) 

更換配方,這是它的外觀在我的數組

Watch

+1

你嘗試','而不是';'? – IQV

+0

是的,這是什麼,本地化罷工了。 – PRKNS

回答

0

您需要在從VBA發送到Excel的公式中使用美國英語格式 - 因此請嘗試替換;與,