ผมทำasign macro แล้ว มันเกิดerror ครับ
Posted: Sat Aug 18, 2012 10:14 am
ผมทำasign macro แล้ว มันเกิดerror ครับถ้าลองลบคำสั่งgoal seek ในvba โปรแกรมจาสามารถรันได้ครับแต่จะไม่สามารถคำนวณได้เหมือน
คลังคำตอบแห่งความรู้จากคนไทย เพื่อโลกที่ต้องการเข้าใจในสิ่งเล็ก ๆ อย่างลึกซึ้ง
https://www.snasui.com/
sahavit wrote:ผมทำasign macro แล้ว มันเกิดerror อะครับถ้าลองลบคำสั่งgoal seek ในvba โปรแกรมจาสามารถรันได้อะครับแต่จะไม่สามารถคำนวณได้เหมือน
Code: Select all
Sub Macro1()
'
' Macro1 Macro
'
Dim i As Integer
On Error Resume Next
With Sheets("nitrogen")
For i = 1 To 109
If i = 1 Then
cd = InputBox("input cd")
.Range("m23") = cd
Pinttank1 = InputBox("input P1int")
.Range("r1") = Pinttank1
r1 = InputBox("input R1")
.Range("r14") = r1
Temperature1 = InputBox("input T1int")
.Range("r3") = Temperature1
.Range("b156") = .Range("r1")
.Range("d156") = .Range("r2")
.Range("f156") = .Range("r3")
Vguess = InputBox("input specificvolumn1")
.Range("D157") = Vguess
.Range("b157").Formula = "=B156"
.Range("b158").Formula = "=m27*F156/D157+B162*m27*F156/D157^2"
.Range("b159").Formula = "=B157-B158"
.Range("b159").Select
.Range("b159").GoalSeek Goal:=0, ChangingCell:=.Range("D157")
.Range("a3") = .Range("d158")
Pinttank2 = InputBox("input P2int")
.Range("r4") = Pinttank2
r2 = InputBox("input r2")
.Range("r15") = r2
Temperature2 = InputBox("input T2int")
.Range("r6") = Temperature2
.Range("b165") = .Range("r4")
.Range("d165") = .Range("r5")
.Range("f165") = .Range("r6")
Vguess = InputBox("input specificvolumn2")
.Range("D166") = Vguess
.Range("b166").Formula = "=B165"
.Range("b167").Formula = "=m27*F165/D166+B171*m27*F165/D166^2"
.Range("b159").Formula = "=B166-B167"
.Range("b168").Select
.Range("b168").GoalSeek Goal:=0, ChangingCell:=.Range("D166")
.Range("b3") = .Range("d167")
.Range("b177").Formula = "=A175*B176+(B175*B176^2)/2+(C175*B176^3)/3+(D175*B176^4)/4"
.Range("b178").Formula = "=(F165+273)/2"
.Range("b185").Formula = "=(B178*B184+B181)*(B156-1)/10"
.Range("b186").Formula = "=B177+B185"
.Range("c3") = .Range("b186")
.Range("b190").Formula = "=F165-273"
.Range("b191").Formula = "=A189*B190+(B189*B190^2)/2+(C189*B190^3)/3+(D189*B190^4)/4"
.Range("d3") = .Range("b191")
deltan = InputBox("input n")
.Range("d1") = deltan
guessTemp1 = InputBox("input T1")
.Range("c119") = guessTemp1
.Range("b113").Formula = "=a4"
.Range("b140").Formula = "= ((C3-D3)/2)*(D1/A4)"
.Range("b138").Formula = "= c3+b140"
.Range("b139").Select
.Range("b139").GoalSeek Goal:=0, ChangingCell:=.Range("c119")
.Range("g2") = .Range("c119")
.Range("f2") = .Range("b132")
.Range("c4") = .Range("b138")
.Range("b113").Formula = "=b4"
guessTemp1 = InputBox("input T2")
.Range("c119") = guessTemp1
.Range("b140").Formula = "= ((C3-D3)/2)*(D1/b4)"
.Range("b138").Formula = "= D3+b140"
.Range("b139").Select
.Range("b139").GoalSeek Goal:=0, ChangingCell:=.Range("c119")
.Range("b146").Formula = "=SQRT((f2-h2)*10^5)"
.Range("i2") = .Range("c119")
.Range("h2") = .Range("b132")
.Range("d4") = .Range("b138")
.Range("j2") = .Range("b151")
Else
If .Range("f" & i) < .Range("h" & i) Then Exit For
.Range("b113") = .Range("a" & i + 3)
.Range("a142") = .Range("c" & i + 2)
.Range("a144") = .Range("a" & i + 4)
.Range("b142") = .Range("d" & i + 2)
.Range("b140").Formula = "= ((a142-b142)/2)*(D1/A144)"
.Range("b138").Formula = "= a142+b140"
.Range("b139").Select
.Range("b139").GoalSeek Goal:=0, ChangingCell:=.Range("c119")
.Range("c" & i + 3) = .Range("b138")
.Range("G" & i + 1) = .Range("c119")
.Range("F" & i + 1) = .Range("b132")
.Range("b144") = .Range("b" & i + 4)
.Range("b113") = .Range("b" & i + 3)
.Range("b140").Formula = "= ((a142-b142)/2)*(D1/b144)"
.Range("b138").Formula = "= b142+b140"
.Range("b139").Select
.Range("b139").GoalSeek Goal:=0, ChangingCell:=.Range("c119")
.Range("b146").Formula = "=SQRT((a154-b154)*10^5)"
.Range("a154") = .Range("f" & i + 1)
.Range("b154") = .Range("h" & i + 1)
.Range("i" & i + 1) = .Range("c119")
.Range("h" & i + 1) = .Range("b132")
.Range("d" & i + 3) = .Range("b138")
.Range("j" & i + 1) = .Range("j" & i) + .Range("b151")
.Range("r12") = .Range("j" & i + 1)
.Range("r8") = .Range("f" & i + 1)
.Range("r10") = .Range("h" & i + 1)
.Range("r9") = .Range("g" & i + 1)
.Range("r11") = .Range("i" & i + 1)
End If
Next i
End With
End Sub