哪位大侠可以帮我把这个逻辑转为excel VBA表达式,追加..?!!!

来源:百度知道 编辑:UC知道 时间:2024/07/01 00:31:55
M=A1:A10
a=C1
E=C2,
L=C3, L分为a,b=L-a两段
ΔL=C4,
i=0,1,2,.......,a,a+1,......L
i<=a时,M(i)=i/a*M
i>a时,M(i)=M
Q(i)=if(M(i)>B1,B2,B3)
∑φ(i) (从i=1到i=L)=[M(i-1) / (E*Q(i-1))+ M(i) / (E*Q(i))] / 2
将∑φ(i) 的值对应M返回到:D1:D10
有另外一个问题已经提出,又答对者,可以同时采纳,加分300...
你回答的很好,但是,有一些问题:
(问题1) i = 1 To L
而我想要从0开始
∑φ(i) 中(从i=1到i=L)
请求把值域改一下,M(i) = i / A * M(i)
(问题2)左边和右边不应同为M(i)吧
右边M(i)是A1到A10
而左边是独立的计算得出的导出值
请求再改一下。。。我真的不会...xiexie
对了这是一个梁求挠度用的...

按照你的逻辑得到大概以下的过程:
Sub test()
Dim M As Variant
Dim Q() As Double
Dim A, E, L As Integer
Dim sumM() As Variant
Dim rangSum As Variant
Set M = Range("A1:A10")
A = Range("C1").Value
E = Range("C2").Value
L = Range("C3").Value
'L分?a,b=L-a?段
ΔL = Range("C4").Value

'i=0,1,2,.......,a,a+1,......L
ReDim Q(L) As Double
ReDim sumM(L) As Variant

For i = 0 To L
If i = 0 Then
'加入i=0 时的一些特殊处理
'。。。。。。。。
GoTo NEXT_FOR
End If
'i<=a?,M(i)=i/a*M
If i <= A Then
M(i) = i / A * M(i)
End If
'i>a?,M(i)=M
If i <= A Then
For j = 0 To i
M(i) = M(i) + M(j)
Next