我最近经常使用 VBA,到目前为止,还没有遇到任何问题。出于某种原因,我无论如何也想不通,Visual Basic 不会在子程序中包含“+”或“-”符号。以下是我希望程序执行的操作:
Function f(x As Single) As Single
f = 0.2 + 25 * x - 200 * x ^ 2 + 675 * x ^ 3 - 900 * x ^ 4 + 400 * x ^ 5
End Function
Sub Simp()
Dim x As Single, y As Single
n = Cells(3, 3)
a = Cells(4, 3)
b = Cells(5, 3)
For i = 1 To n
a + i = Cells(2 + i, 1)
Next i
End Sub
我遇到的问题是,每当我输入“a+i=Cells(2+i,1)”时,程序都会将其更改为“ai=Cells(2+i,1)”,并显示“编译错误:应为子程序、函数或属性”。其他已完成的程序不会发生同样的情况。这是怎么回事?我该如何解决?
答案1
你提到 -
我遇到的问题是,每当我输入“a + i = Cells(2 + i,1)”时,程序都会将其更改为“ai = Cells(2 + i,1)”并显示“编译错误:预期子程序、函数或属性”。
编辑器期望a
调用另一个子程序或函数,因为在a
将其转换为之后,您没有对它执行任何操作a i=cells(2+i,1)
。之所以发生转换,是因为您没有告诉它在计算之前执行任何操作a+i
,因此它不会执行该操作。
要纠正这个问题,您需要a+i
在计算之前指定一个位置来存储结果。通过反转操作顺序来实现:
Cells(2+i,1)=a+i