当我尝试将我的数组转储到某个范围时,我得到一个错误1004,但只有当数组中的公式包含括号时才会出现。
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)
我甚至尝试用这个变种替换公式
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh"
};
function checkObj(checkProp) {
if(myObj.hasOwnProperty(checkProp)) {
return myObj[checkProp];
} else {
return "Not Found";
}
}
checkObj("gift");
这就是它在我的数组中的样子
答案 0 :(得分:0)
您需要在从VBA发送到Excel的公式中使用美国英语格式 - 因此请尝试替换;用a,