: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

Vba code ใน userform ไม่ทำงาน

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
jaruek
Member
Member
Posts: 94
Joined: Mon Dec 10, 2012 10:43 am

Vba code ใน userform ไม่ทำงาน

#1

Post by jaruek »

TestPost.xlsm
code ใน userform ไม่ทำงาน
(21.08 KiB) Downloaded 9 times
ผมเขียน vba code รันในหน้า Worksheet ปกติได้ครับ พอสร้าง Userform แล้ว vba code ไม่ทำงาน ช่วยปรับ Code ให้ด้วยครับ

ขอบคุณมากครับ

แนบไฟล์มาให้ด้วยแล้ว
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Vba code ใน userform ไม่ทำงาน

#2

Post by snasui »

:D ช่วยอธิบายคำว่าไม่ทำงานอย่างไรครับ ทั้งช่วยแจ้งมาด้วยว่าผมสามารถทดสอบการ Run UserForm ด้วยวิธีใดเพื่อให้เกิดเหตุการณ์นั้นครับ
jaruek
Member
Member
Posts: 94
Joined: Mon Dec 10, 2012 10:43 am

Re: Vba code ใน userform ไม่ทำงาน

#3

Post by jaruek »

snasui wrote::D ช่วยอธิบายคำว่าไม่ทำงานอย่างไรครับ ทั้งช่วยแจ้งมาด้วยว่าผมสามารถทดสอบการ Run UserForm ด้วยวิธีใดเพื่อให้เกิดเหตุการณ์นั้นครับ
ขอโทษครับ ใน Sheet1 จะมีปุ่มรันมาโคร 2 ปุ่ม คือ Service และ OT จะทำงานคือ เมื่อเลือกรหัสในคอลัมน์ A2 แล้วใส่จำนวนเงินในช่อง D2 เมื่อกดปุ่ม Service จะบันทึกจำนวนเงิน ตามรหัสที่เราเลือกใน A2 ครับ ผมต้องการสร้าง Userform แล้ว เลื่อกรหัส และ จำนวนเงิน และให้ได้ผลเหมือนกับที่เรากดปุ่ม Service ครับ เพิ่มเติมครับ Userform ลองรันในหน้า VBACode ได้เลยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Vba code ใน userform ไม่ทำงาน

#4

Post by snasui »

:D การที่จะให้ UserForm Run ได้ต้องเขียน Code ไปเรียก UserForm มาก่อน เช่นด้านล่างครับ

Code: Select all

Sub Test()
   UserForm1.Show
End Sub
ส่วนการทดสอบ UserForm ที่ผมพูดถึง ผมต้องการทราบว่าคุณ jaruek ทดสอบด้วยวิธีใดจึงไม่ทำงาน
jaruek
Member
Member
Posts: 94
Joined: Mon Dec 10, 2012 10:43 am

Re: Vba code ใน userform ไม่ทำงาน

#5

Post by jaruek »

snasui wrote::D การที่จะให้ UserForm Run ได้ต้องเขียน Code ไปเรียก UserForm มาก่อน เช่นด้านล่างครับ

Code: Select all

Sub Test()
   UserForm1.Show
End Sub
ส่วนการทดสอบ UserForm ที่ผมพูดถึง ผมต้องการทราบว่าคุณ jaruek ทดสอบด้วยวิธีใดจึงไม่ทำงาน
ครับ ส่งไฟล์ใหม่มาให้ครับ สร้างปู่ม Showform มาให้แล้ว ความต้องการคื่อ ให้แสดงผลเหมือนเมื่อเรากดปุ่ม ServiceหรือOt จะบันทึกจำนวนเงินตามที่เราใส่ค่าและบันทึกตามรหัสพนักงานที่เราเลือก ใน code userform ที่ผมทำ จะผิดตรง Eservice ซึ่งเป็นค่าจำนวนเงิน มันทำงานไม่ถูกต้องคือไม่ save ค่าลงตามรหัสพนักงาน ที่เราเลือกครับ อาจาร์ย ทดสอบ กับปุ่ม Service หรือ Ot ครับ มันจะบันทึกค่าจำนวนเงินตรงตามรหัสที่เลือกครับ พอผมทำให้ Userform ไม่ได้ตามที่ต้องการเหมือนที่กดปุ่ม Service หรือ ot ครับ
Attachments
TestPost.xlsm
(23.24 KiB) Downloaded 23 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Vba code ใน userform ไม่ทำงาน

#6

Post by snasui »

:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim Ecode As String
    Dim Eservice As String
    Dim Empname As String
    Ecode = TextBox1.Value
    Eservice = TextBox3.Value
    Empname = TextBox2.Value
    
    Range("A2").Select
    Ecode = ActiveCell.FormulaR1C1 + 3
    Eservice = Range("D" & Ecode).Address
    Range("D2").Select
    Empname = ActiveCell.FormulaR1C1
    Range(Eservice).Select
    ActiveCell.FormulaR1C1 = Val(ActiveCell.FormulaR1C1) + Val(Empname)
    Range("D2").Select
    ActiveCell.FormulaR1C1 = ""
End Sub
jaruek
Member
Member
Posts: 94
Joined: Mon Dec 10, 2012 10:43 am

Re: Vba code ใน userform ไม่ทำงาน

#7

Post by jaruek »

snasui wrote::D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim Ecode As String
    Dim Eservice As String
    Dim Empname As String
    Ecode = TextBox1.Value
    Eservice = TextBox3.Value
    Empname = TextBox2.Value
    
    Range("A2").Select
    Ecode = ActiveCell.FormulaR1C1 + 3
    Eservice = Range("D" & Ecode).Address
    Range("D2").Select
    Empname = ActiveCell.FormulaR1C1
    Range(Eservice).Select
    ActiveCell.FormulaR1C1 = Val(ActiveCell.FormulaR1C1) + Val(Empname)
    Range("D2").Select
    ActiveCell.FormulaR1C1 = ""
End Sub
ขอบคุณมากครับ
jaruek
Member
Member
Posts: 94
Joined: Mon Dec 10, 2012 10:43 am

Re: Vba code ใน userform ไม่ทำงาน

#8

Post by jaruek »

jaruek wrote:
snasui wrote::D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim Ecode As String
    Dim Eservice As String
    Dim Empname As String
    Ecode = TextBox1.Value
    Eservice = TextBox3.Value
    Empname = TextBox2.Value
    
    Range("A2").Select
    Ecode = ActiveCell.FormulaR1C1 + 3
    Eservice = Range("D" & Ecode).Address
    Range("D2").Select
    Empname = ActiveCell.FormulaR1C1
    Range(Eservice).Select
    ActiveCell.FormulaR1C1 = Val(ActiveCell.FormulaR1C1) + Val(Empname)
    Range("D2").Select
    ActiveCell.FormulaR1C1 = ""
End Sub
ขอบคุณมากครับ
รบกวนอีกครั้งครับ ผมลอง รัน แล้วจะติด Debug ที่บรรทัด
Eservice = Range("D" & Ecode).Address
jaruek
Member
Member
Posts: 94
Joined: Mon Dec 10, 2012 10:43 am

Re: Vba code ใน userform ไม่ทำงาน

#9

Post by jaruek »

jaruek wrote:
jaruek wrote:
snasui wrote::D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim Ecode As String
    Dim Eservice As String
    Dim Empname As String
    Ecode = TextBox1.Value
    Eservice = TextBox3.Value
    Empname = TextBox2.Value
    
    Range("A2").Select
    Ecode = ActiveCell.FormulaR1C1 + 3
    Eservice = Range("D" & Ecode).Address
    Range("D2").Select
    Empname = ActiveCell.FormulaR1C1
    Range(Eservice).Select
    ActiveCell.FormulaR1C1 = Val(ActiveCell.FormulaR1C1) + Val(Empname)
    Range("D2").Select
    ActiveCell.FormulaR1C1 = ""
End Sub
ขอบคุณมากครับ
รบกวนอีกครั้งครับ ผมลอง รัน แล้วจะติด Debug ที่บรรทัด
Eservice = Range("D" & Ecode).Address
ผมอาจจะอธิบายเข้าใจอยากไป ต้องขอโทษครับ ความต้องการก็คือ เมื่อคีย์ข้อมูลใน Userform ที่สร้าง แล้ว พอดกปุ่ม Saveให้บันทึกข้อมูลลงใน Sheet1 เหมือนที่ผมทำปุ่ม Service ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Vba code ใน userform ไม่ทำงาน

#10

Post by snasui »

:D ลองยกตัวอย่างการกรอกข้อมูลให้ติด Bug ที่บรรทัดนั้นมาด้วยครับ
jaruek
Member
Member
Posts: 94
Joined: Mon Dec 10, 2012 10:43 am

Re: Vba code ใน userform ไม่ทำงาน

#11

Post by jaruek »

snasui wrote::D ลองยกตัวอย่างการกรอกข้อมูลให้ติด Bug ที่บรรทัดนั้นมาด้วยครับ
ผมพยายาม Capture หน้าจอ แต่ไม่ได้ครับ เลยขอพิมพ์แล้วกันครับ ตัวอย่าง ใน Userform ช่อง Code ใส่เลข 6 ช่อง Name ใส่ F ช่อง Amount ใส่ 5000 พอกดปุ่ม Save ก็จะติด Debug บรรทัดที่ผมแจ้งไว้ก่อนหน้าครับ ส่วนความต้องการก็คือ เมื่อเรากด Save ให้ช่องจำนวนเงิน 5000 บันทึกค่าลงในตารางของ Sheet1 บรรทัดที่ 9 ซึ่งเป็นบรรทัดของรหัส 6 ตามที่คีย์ใน Useform ครับ ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Vba code ใน userform ไม่ทำงาน

#12

Post by snasui »

:D ผมทดสอบ Code แล้วไม่ติด Bug

ตัวอย่าง Code สำหรับการนำค่าใน TextBox3 ไปใส่ในคอลัมน์ D หากคอลัมน์ A มีค่าตรงกับ TextBox1 ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim Ecode As String
    Dim Eservice As String
    Dim Empname As String
    Dim line As Integer
    Ecode = TextBox1.Value
    Eservice = TextBox3.Value
    Empname = TextBox2.Value
    line = Application.Match(CInt(Ecode), Range("a:a"), 0)
    Range("d" & line) = CInt(TextBox3.Text)
    'Other code
End Sub
jaruek
Member
Member
Posts: 94
Joined: Mon Dec 10, 2012 10:43 am

Re: Vba code ใน userform ไม่ทำงาน

#13

Post by jaruek »

snasui wrote::D ผมทดสอบ Code แล้วไม่ติด Bug

ตัวอย่าง Code สำหรับการนำค่าใน TextBox3 ไปใส่ในคอลัมน์ D หากคอลัมน์ A มีค่าตรงกับ TextBox1 ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim Ecode As String
    Dim Eservice As String
    Dim Empname As String
    Dim line As Integer
    Ecode = TextBox1.Value
    Eservice = TextBox3.Value
    Empname = TextBox2.Value
    line = Application.Match(CInt(Ecode), Range("a:a"), 0)
    Range("d" & line) = CInt(TextBox3.Text)
    'Other code
End Sub
ได้แล้วครับ ขอบคุณมากๆ ครับ
Post Reply