:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ผมทำasign macro แล้ว มันเกิดerror ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sahavit
Member
Member
Posts: 19
Joined: Sat Aug 18, 2012 10:02 am

ผมทำasign macro แล้ว มันเกิดerror ครับ

#1

Post by sahavit »

ผมทำasign macro แล้ว มันเกิดerror ครับถ้าลองลบคำสั่งgoal seek ในvba โปรแกรมจาสามารถรันได้ครับแต่จะไม่สามารถคำนวณได้เหมือน
Attachments
ตารางเอนทัลปีที่เปลี่ยนไปตามเวลา4.xlsm
ผมเขียนแมรโครในอันแรกสามารถรันได้ตามปกติครับแต่พอไปใช้asign macro ในsheet 2 แล้วเกิดerrorครับผม
(47.54 KiB) Downloaded 14 times
Last edited by sahavit on Sat Aug 18, 2012 11:12 am, edited 1 time in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ผมทำasign macro แล้ว มันเกิดerror อะครับ

#2

Post by snasui »

sahavit wrote:ผมทำasign macro แล้ว มันเกิดerror อะครับถ้าลองลบคำสั่งgoal seek ในvba โปรแกรมจาสามารถรันได้อะครับแต่จะไม่สามารถคำนวณได้เหมือน
:D ในฟอรัมถามตอบงดใช้ภาษาแชทครับ ตามกฎการใช้บอร์ดข้อ 1 :roll: หากเลยเวลา 60 นาทีมาแล้วจะแก้ไขไม่ได้ ให้เขียนคำถามใหม่ด้วยภาษาปกติครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ผมทำasign macro แล้ว มันเกิดerror ครับ

#3

Post by snasui »

:D จาก Code ที่เขียนมาไม่ได้บอกโปรแกรมว่าต้องการให้คำนวณในชีทไหน เมื่อเป็นเช่นนั้นโปรแกรมจะทำงานในชีทที่กำลัง Active อยู่เสมอ จึงควรจะบอกด้วยว่า Range ที่ให้ทำงานนั้นอยู่ในชีทใด ผมเพิ่ม With...End With เข้าไปให้ ดูตาม Code ด้านล่างครับ

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
sahavit
Member
Member
Posts: 19
Joined: Sat Aug 18, 2012 10:02 am

Re: ผมทำasign macro แล้ว มันเกิดerror ครับ

#4

Post by sahavit »

ขอบคุณครับ โปรแกรมสามารถrunได้แล้วครับ
Post Reply