: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

การใช้command bottom การการlink macro

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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

การใช้command bottom การการlink macro

#1

Post by sahavit »

command bottom ชื่อ nitrogen link macro ไปที่sheet nitrogen
command bottom ชื่อ oxygen link macro ไปที่sheet oxygen
command bottom ชื่อ hydrogen link macro ไปที่sheet hydrogen
command bottom ชื่อ argon link macro ไปที่sheet argon
command bottom ชื่อclear screen อยากทำการล้างข้อมูลในช่องd1:d6
Attachments
ตารางเอนทัลปีที่เปลี่ยนไปตามเวลา4.xlsm
(124.16 KiB) Downloaded 14 times
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การใช้command bottom การการlink macro

#2

Post by bank9597 »

:D การสอบถามเรื่อง VBA จำเป็นต้องเขียนมาก่อนเสมอครับ

คำถามที่ถามมาผมเคยตอบไว้แล้วใน viewtopic.php?f=3&t=3111

เช่น การล้างข้อมูลก็จะใช้โค๊ดแนวนี้

Code: Select all

 Sheets("Sheet1").Range("D2:D6").ClearContents
ส่วนการเปิดหน้าชีทต่างๆ โค๊ดที่ใช้ก็จะประมาณนี้

Code: Select all

Sheets("MySheet").Activate
ลองเขียนมาดูก่อนครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
sahavit
Member
Member
Posts: 19
Joined: Sat Aug 18, 2012 10:02 am

Re: การใช้command bottom การการlink macro

#3

Post by sahavit »

Sub Macro1()
'
' Macro1 Macro
'
Dim i As Integer
On Error Resume Next
With Sheets("nitrogen")
For i = 1 To 109
If i = 1 Then
Rpipe = InputBox("input rpipe")
.Range("r16") = Rpipe
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")
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")
guessTemp1 = InputBox("input T1")
.Range("c119") = guessTemp1
.Range("b113").Formula = "=a4"
.Range("b114") = .Range("a1") / Range("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"
.Range("b114") = Range("b1") / Range("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("b114") = .Range("a1") / .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("b114") = Range("b1") / 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
ไม่รู้ว่าผมเขียนผิดตรงไหนอะครับมันerror
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การใช้command bottom การการlink macro

#4

Post by bank9597 »

sahavit wrote:Sub Macro1()
'
' Macro1 Macro
'
Dim i As Integer
On Error Resume Next
With Sheets("nitrogen")
For i = 1 To 109
If i = 1 Then
Rpipe = InputBox("input rpipe")
.Range("r16") = Rpipe
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")
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")
guessTemp1 = InputBox("input T1")
.Range("c119") = guessTemp1
.Range("b113").Formula = "=a4"
.Range("b114") = .Range("a1") / Range("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"
.Range("b114") = Range("b1") / Range("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("b114") = .Range("a1") / .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("b114") = Range("b1") / 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
ไม่รู้ว่าผมเขียนผิดตรงไหนอะครับมันerror
:shock: โค๊ดที่โพสต์มา กับคำถามที่ถามข้างบนสุด มีความเกี่ยวข้องกันอย่างไร

คุณถามเรื่องการเรียกชีทต่างๆให้แสดง กับ การล้างข้อมูล หรือว่าผมเข้าใจอะไรผิดไปเหรอครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
sahavit
Member
Member
Posts: 19
Joined: Sat Aug 18, 2012 10:02 am

Re: การใช้command bottom การการlink macro

#5

Post by sahavit »

ขอโทษครับที่ผมอธิบายไม่ละเอียดครับโดยอย่างที่คุณเคยบอกครับมันจาเป็นเพียงแค่การเอาค่ามาป้อนสู้หน้าสุดท้ายที่ลิงค์ไปแต่ในmacro แต่ละsheetครับจะมีการป้อนรับค่าเพื่อคำนวณหาค่าP Tไหม่เสมอครับคือถ้าผมใช้codeตามคุณว่ามันจะไม่มีการรับค่าไหม่ครับ ผมขอความกรุณาคุณลองrunในsheet อื่นครับผมว่าคุณน่าจะเข้าใจครับ ขอบคุณล่วงหน้าครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การใช้command bottom การการlink macro

#6

Post by bank9597 »

sahavit wrote:ขอโทษครับที่ผมอธิบายไม่ละเอียดครับโดยอย่างที่คุณเคยบอกครับมันจาเป็นเพียงแค่การเอาค่ามาป้อนสู้หน้าสุดท้ายที่ลิงค์ไปแต่ในmacro แต่ละsheetครับจะมีการป้อนรับค่าเพื่อคำนวณหาค่าP Tไหม่เสมอครับคือถ้าผมใช้codeตามคุณว่ามันจะไม่มีการรับค่าไหม่ครับ ผมขอความกรุณาคุณลองrunในsheet อื่นครับผมว่าคุณน่าจะเข้าใจครับ ขอบคุณล่วงหน้าครับ
:D ขออภัยจริงๆครับ ผมยังไม่เข้าใจจริงๆ เดี๋ยวรอท่านอื่นเข้ามาช่วยแนะนำอีกครั้งน่ะครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
sahavit
Member
Member
Posts: 19
Joined: Sat Aug 18, 2012 10:02 am

Re: การใช้command bottom การการlink macro

#7

Post by sahavit »

ครับผม ขอบคุณครับที่ช่วยดูให้ผม
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: การใช้command bottom การการlink macro

#8

Post by snasui »

:D ให้นำ Code ด้านล่างไว้ใน Module1 สำหรับ Code ในชีทอื่น ๆ ให้ลบทิ้งไปให้หมดครับ จากนั้น สร้างปุ่มขึ้นมาใหม่จาก Form Control ปุ่มเดิมที่สร้างจาก ActiveX Control ให้ลบทิ้ง แล้ว Assign Macro CommandButton1- CommandButton4 ให้กับปุ่มที่สร้างขึ้นใหม่โดยคลิกขวาที่ปุ่มแล้วเลือก Assign Macro สำหรับการ Post Code ให้แสดงเป็น Code ดูได้จากที่นี่ จะได้ง่ายต่อการอ่าน :arrow: viewtopic.php?f=3&t=1187

Code: Select all

Sub Macro1(x)
Dim i As Integer
On Error Resume Next
With Sheets(x)
    For i = 1 To 109
        If i = 1 Then
            Rpipe = InputBox("input rpipe")
            .Range("r16") = Rpipe
            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")
            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("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("d3") = .Range("b191")
            guessTemp1 = InputBox("input T1")
            .Range("c119") = guessTemp1
            .Range("b113").Formula = "=a4"
            .Range("b114") = .Range("a1") / Range("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"
            .Range("b114") = Range("b1") / Range("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("b114") = .Range("a1") / .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("b114") = Range("b1") / 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

Sub CommandButton1_Click()
Call Macro1("nitrogen")
End Sub

Sub CommandButton2_Click()
Call Macro1("oxygen")
End Sub

Sub CommandButton3_Click()
Call Macro1("hydrogen")
End Sub

Sub CommandButton4_Click()
Call Macro1("argon")
End Sub
sahavit
Member
Member
Posts: 19
Joined: Sat Aug 18, 2012 10:02 am

Re: การใช้command bottom การการlink macro

#9

Post by sahavit »

รบกวนถามอีกหน่อยครับถ้าผมอยากให้มันรับค่าจากrange("r8")ไปแสดงที่range("d1")
ผมพิมcodeแบบนี้ได้ไหมครับ

Code: Select all

Sheets(Sheet3).Range("d1") = Sheets(x).Range("r8")
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: การใช้command bottom การการlink macro

#10

Post by snasui »

:D ลองเลยครับ ลองแล้วติดปัญหาตรงไหนสามารถถามมาได้ครับ
sahavit
Member
Member
Posts: 19
Joined: Sat Aug 18, 2012 10:02 am

Re: การใช้command bottom การการlink macro

#11

Post by sahavit »

ลองแล้วครับมันดูรู้ว่าrun นะครับแต่ค่าไม่ได้ถูกส่งมาครับ
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: การใช้command bottom การการlink macro

#12

Post by snasui »

:shock: ลองตรวจสอบง่าย ๆ ด้วย MessageBox ว่ามันมีค่าอะไรครับ เช่น

Code: Select all

MsgBox Sheets(x).Range("R8")
Post Reply