Sub PlaceOrd()
Dim i As Long
For i = 2 To 52
Range("Y" & i).FormulaR1C1 = _
"=PlaceRegularOrder(Range("A" & i), Range("B" & i), ""BUY"", ""SL"", Range("W" & i), ""MIS"", Range("Q" & i), Range("Q" & i))"
Next i
End Sub
上面的代码抛出错误"预期:语句结束"。请告诉我如何处理这个问题。在上面的代码" A"," B"," W"和" Q"是列。但如果我代表" A" as"" A""然后代码显示没有错误,但A B W和Q被视为文本。如何纠正这个
我的函数(PlaceRegularOrder(....))应该放在Y2,Y3 ..... Y52中使用循环。一些价值取自" A"," B"," W"和" Q"。请让我知道我该怎么做
答案 0 :(得分:0)
您当前的代码正在尝试创建要传递给FormulaR1C1
属性的字符串。你犯了三个错误:
尝试在字符串中存储双引号时,您没有使用双引号。 (你似乎在某些地方做过,但其他地方却没有。)
您希望Excel本身能够理解Range("A2")
之类的内容。
您没有对单元格使用R1C1表示法。
您的代码必须是:
Sub PlaceOrd()
Dim i As Long
For i = 2 To 52
Cells(i, "Y").FormulaR1C1 = _
"=PlaceRegularOrder(RC1, RC2, ""BUY"", ""SL"", RC23, ""MIS"", RC17, RC17)"
Next i
End Sub
然后可以将其简化为:
Sub PlaceOrd()
Range("Y2:Y52").FormulaR1C1 = _
"=PlaceRegularOrder(RC1, RC2, ""BUY"", ""SL"", RC23, ""MIS"", RC17, RC17)"
End Sub