: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

ปัญหาการจัดคำแบบสอบถามใน excel

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#41

Post by snasui »

:D ไม่พบไฟล์แนบครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#42

Post by porkub1 »

ได้ครับอาจารย์ ขอโทษด้วยนะครับ

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("อ่าน, vbOKOnly + 64, "อ่าน")
    Else: strvaluemsg = MsgBox("ไปข้อ 1.2")
     
End If
  If OptionButtons("Option Button 9").Value = True Then
     Sheets("บันทึกข้อมูล").Range("a13") = 1
End If
If OptionButtons("Option Button 10").Value = True Then
     Sheets("บันทึกข้อมูล").Range("a13") = 2
End If
       
        Application.Goto reference:="r18c3"
   
   
End Sub
มีปัญหาที่ชีท "แบบสอบถามข้อ3" ตรงปุ่ม "บันทึก" CommandButton1 ครับ อาจารย์
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#43

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("ทดสอบ", vbOKOnly + 64, "อ่าน")
    Else: strvaluemsg = MsgBox("ไปข้อ 1.2")
    End If
    If ActiveSheet.OptionButtons("Option Button 9").Value = 1 Then
        Sheets("บันทึกข้อมูล").Range("a13") = 1
    End If
    If ActiveSheet.OptionButtons("Option Button 10").Value = 1 Then
        Sheets("บันทึกข้อมูล").Range("a13") = 2
    End If
    Application.Goto reference:="r18c3"
End Sub
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#44

Post by porkub1 »

ได้แล้วครับอาจารย์ ขอบคุณมากครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#45

Post by porkub1 »

อาจารย์ครับ สอบถาม เรื่องการบันทึกคำตอบ ถ้าอยากให้ การกรอกข้อมูลลงใน textbox1 ในข้อ 1.1 จะมีการบันทึกคำตอบ 3 ครั้ง แต่จากโค้ดที่ผม ทำได้ จะบันทึกได้ ครั้งที่ 1 (ฺB9)และ ครั้งที่ 2(c9) ไม่มีปัญหา พอในครั้งที่ 3 ในเซลล์ (D9) นั้นคำตอบจาก ครั้งที่ 2 จะมาซ้ำในครั้งที่สาม ด้วย รบกวนอาจารย์ชี้แนะด้วยครับ :D

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("อ่าน", vbOKOnly + 64, "อ่าน")
    Else: strvaluemsg = MsgBox("ไปข้อ 1.2")
        With Worksheets("บันทึกข้อมูล")
            If .Range("b9") = "" Then
                .Range("b9") = TextBox1.Value
            Else
                .Range("b" & Rows.Count).End(xlUp).Offset(0, 1) = TextBox1.Value
           
        
End If
  
       
        Application.Goto reference:="ques1.2"
    End With
    End If
End Sub
โค้ดนี้จะอยู่ในชีท "แบบสอบถาม" อยู่ในปุ่ม บันทึก ใน ข้อ 1.1 ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#46

Post by snasui »

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

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("·´Êͺ", vbOKOnly + 64, "ÍèÒ¹")
    Else
        strvaluemsg = MsgBox("仢éÍ 1.2")
        With Worksheets("ºÑ¹·Ö¡¢éÍÁÙÅ")
            If .Range("b9") = "" Then
                .Range("b9") = TextBox1.Value
            ElseIf .Range("c9") = "" Then
                .Range("c9") = TextBox1.Value
            ElseIf .Range("d9") = "" Then
                .Range("d9") = TextBox1.Value
            End If
            Application.Goto reference:="ques1.2"
        End With
    End If
End Sub
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#47

Post by porkub1 »

ได้แล้วครับ ขอบคุณครับอาจารย์
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#48

Post by porkub1 »

สวัสดีครับ อาจารย์ ผมมีข้อสงสัย ดังนี้ครับ
จากไฟล์ที่แนบ เรื่องแบบสอบถาม จาก ข้อ 2.2 ในชีท "แบบสอบถามข้อ3 " เรื่องการบันทึก ข้อมูลของค่า optionbutton นะครับ คือ ผมได้กำหนดถ้า ตอบ ใช่ มีค่าเท่ากับ 1
ไม่ มีค่าเท่ากับ 2
ทีนี้ ค่าที่ตอบนั้น ในชีท "บันทึกข้อมูล" ในเซลล์ "c5" จะบันทึกค่า ได้ ไม่มีปัญหา แต่ผมต้องการว่า เมื่อมีการตอบแบบสอบถามอีกครั้งซ้ำ กัน เพียงแค่ 3 ครั้ง เท่านั้น
โดยที่จะบันทึกข้อมูล ในเซลล์ "F5 และ I5 " ตามลำดับ

สิ่งที่ผมทำได้ คือ จะบันทึก ค่าคำตอบ ทับ กัน และ เมื่อตอบหลายๆๆครั้งที่มากกว่า 3 ครั้ง จะ จะเกินตารางที่ได้สร้างไว้ครับ ผมต้องการในบันทึก แค่เพียง 3 ครั้ง ครับ
โค้ดจะอยู่ใน ชีท "แบบสอบถามข้อ3 " ปุ่ม "บันทึกครับ(CommandButton1)"
แนบโค้ดครับ

Code: Select all

Private Sub CommandButton1_Click()
    
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("ทดสอบ", vbOKOnly + 64, "อ่าน")
    Else: strvaluemsg = MsgBox("ไปข้อ 1.2")
    End If
    If ActiveSheet.OptionButtons("Option Button 9").Value = 1 Then
        Sheets("บันทึกข้อมูล").Range("c5") = 1
    End If
    If ActiveSheet.OptionButtons("Option Button 10").Value = 1 Then
        Sheets("บันทึกข้อมูล").Range("c5") = 2
    End If
    Application.Goto reference:="r18c3"

        With Worksheets("บันทึกข้อมูล")
      If .Range("c6") = "" Then
                .Range("c6") = TextBox1.Value
            ElseIf .Range("f6") = "" Then
                .Range("f6") = TextBox1.Value
            ElseIf .Range("i6") = "" Then
                .Range("i6") = TextBox1.Value
          
End If
 End With

End Sub
ขอบพระคุณอาจารย์ มากครับ
You do not have the required permissions to view the files attached to this post.
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#49

Post by porkub1 »

อีกเรื่องหนึ่งนะครับ จากไฟล์ ในข้อ 2.2 เมื่อกด บันทึกข้อมูล จะมีกล่องเตือนการบันทึกแล้วจะมี User form บันทึกข้อมูล

ทีนี้ผมอยากจะสอบถามว่า ผมอยากจะใช้ user form นี้ในการบันทึกในข้ออื่นๆ ต่อจะได้ไหมครับ
โดยให้ กล่องcombobox1 ที่อยู่ใน userform ไปบันทึก ในเซลล์ d14 g14 j14 ตามลำดับ
และ textbox1 ที่อยู่ใน userform ไปบันทึก ในเซลล์ e14 h14 k14

โดยถ้ากรณีไม่ได้ผมก็คงต้อง สร้าง userform ในทุกข้อขึ้นมาใหม่ ใช่มั้ยครับ รบกวนอาจารย์ด้วยนะครับ ขอบคุณครับ

โค้ดครับ ใน userform4 ในปุ่มบันทึก (commandbutton1)

ต้องดู ไฟล์อันนี้ดูด้วยนะครับ เพราะเป็นที่ไฟล์ที่จะมี Userform ครับ

Code: Select all

Private Sub CommandButton1_Click()
If ComboBox1.Value = "" Then
MsgBox ("กรุณาเลือก"), vbOKOnly + 16, "กรุณาอ่าน"

ElseIf TextBox1.Value = "" Then
MsgBox ("กรุณาระบุข้อที่ท่านตอบ"), vbOKOnly + 16, "กรุณาอ่าน"
Else:
strvaluemsg = MsgBox("ข้อมูลของท่านได้บันทึกแล้ว ", vbOKOnly + 64, "ขอบคุณ")
With Worksheets("บันทึกข้อมูล")
            If .Range("d5") = "" Then
                .Range("d5") = ComboBox1.Value
            ElseIf .Range("g5") = "" Then
                .Range("g5") = ComboBox1.Value
            ElseIf .Range("j5") = "" Then
                .Range("j5") = ComboBox1.Value
            End If
             If .Range("e5") = "" Then
                .Range("e5") = TextBox1.Value
            ElseIf .Range("h5") = "" Then
                .Range("h5") = TextBox1.Value
                ElseIf .Range("k5") = "" Then
                .Range("k5") = TextBox1.Value
                
            End If

Unload Me
End With
End If
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#50

Post by snasui »

porkub1 wrote:สิ่งที่ผมทำได้ คือ จะบันทึก ค่าคำตอบ ทับ กัน และ เมื่อตอบหลายๆๆครั้งที่มากกว่า 3 ครั้ง จะ จะเกินตารางที่ได้สร้างไว้ครับ ผมต้องการในบันทึก แค่เพียง 3 ครั้ง
:D Code ที่เขียนมาเป็นได้แค่บันทึกซ้ำกัน ไม่มี Code บรรทัดใดบันทึกเกินไปกว่าขอบเขตที่กำหนด

หากต้องการให้บันทึกเพียง 3 ครั้งสามารถใช้การตรวจสอบค่าในคอลัมน์ I ได้ว่าถูกบันทึกแล้วหรือไม่ หากถูกบันทึกแล้วให้ Exit ออกไป ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("ทดสอบ", vbOKOnly + 64, "อ่าน")
    Else: strvaluemsg = MsgBox("ไปข้อ 1.2")
    End If
    If ActiveSheet.OptionButtons("Option Button 9").Value = 1 Then
        Sheets("บันทึกข้อมูล").Range("c5") = 1
    End If
    If ActiveSheet.OptionButtons("Option Button 10").Value = 1 Then
        Sheets("บันทึกข้อมูล").Range("c5") = 2
    End If
    Application.Goto reference:="r18c3"
    With Worksheets("บันทึกข้อมูล")
        If .Range("i6") <> "" Then Exit Sub
        If .Range("c6") = "" Then
            .Range("c6") = TextBox1.Value
        ElseIf .Range("f6") = "" Then
            .Range("f6") = TextBox1.Value
        ElseIf .Range("i6") = "" Then
            .Range("i6") = TextBox1.Value
        End If
    End With
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#51

Post by snasui »

porkub1 wrote:อีกเรื่องหนึ่งนะครับ จากไฟล์ ในข้อ 2.2 เมื่อกด บันทึกข้อมูล จะมีกล่องเตือนการบันทึกแล้วจะมี User form บันทึกข้อมูล

ทีนี้ผมอยากจะสอบถามว่า ผมอยากจะใช้ user form นี้ในการบันทึกในข้ออื่นๆ ต่อจะได้ไหมครับ
โดยให้ กล่องcombobox1 ที่อยู่ใน userform ไปบันทึก ในเซลล์ d14 g14 j14 ตามลำดับ
และ textbox1 ที่อยู่ใน userform ไปบันทึก ในเซลล์ e14 h14 k14

โดยถ้ากรณีไม่ได้ผมก็คงต้อง สร้าง userform ในทุกข้อขึ้นมาใหม่ ใช่มั้ยครับ รบกวนอาจารย์ด้วยนะครับ ขอบคุณครับ
:D การทำเช่นนั้นจะต้องกำหนดตัวแปรให้กับเซลล์ที่จะบันทึกข้อมูล ไม่ใช่ระบุไปตรง ๆ ว่าเป็น Range("e14"), Range("h14") ฯลฯ

ยกตัวอย่างเช่นให้บรรทัดเป็นค่าตัวแปร i หากค่าแรกคือบรรทัดที่ 6 บรรทัดถัดไปต้องบวกด้วย 8 เราสามารถบวกค่าตัวแปร i ไป 8 เพื่อไปยังบรรทัดถัดไปตามต้องการ เช่น

Code: Select all

dim i as integer
dim j as integer
i = 6
for j = 1 to 5
   range("a" & i) = i
   i = i + 8
next j
จากด้านบนเป็นการยกตัวอย่างให้เห็นว่าเราสามารถสร้างตัวแปรเข้าไปช่วยเพื่อให้บันทึกในบรรทัดใด ๆ ตามต้องการ ไม่จำเป็นต้องสร้าง UserForm ในทุก ๆ ข้อครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#52

Post by porkub1 »

:D ขอบพระคุณอาจารย์ครับ ที่ช่วยตอบ แต่ทีนี้ ที่อาจารย์แนะนำ นั้นจะเป็นการบันทึกใน ส่วน ที่ เป็น textbox
แต่ทีนี้ผมต้องการบันทึกในส่วนค่าที่เกิดจาก optionbutton ครับ เนื่องจาก จะตั้งค่า ใช่ =1 ไม่ =2 จากโค้ดที่ผมทำได้นั้น ค่าจะบันทึก ทับกันอยู่ในในช่องเดียว คือเซลล์ C5 ผมอยากให้ บันทึก ครั้งแรก ที่ C5 ครั้งที่ 2 "F5" ครั้งที่ 3 "I5" ตามลำดับครับ ผมงงว่าจะเขียนโค้ดแบบไหนดี เพราะ
ที่ตั้งค่าจะกำหนดแบบเฉพาะเซลล์ อยากจะให้อาจารย์ช่วยชี้แนะ ครับ ขอบคุณครับ
โค้ดอยู่ใน ปุ่ม บันทึก"CommandButton1" ครับ

Code: Select all

Private Sub CommandButton1_Click()
    
   
    If ActiveSheet.OptionButtons("Option Button 9").Value = 1 Then
        Sheets("บันทึกข้อมูล").Range("c5") = 1
    End If
    If ActiveSheet.OptionButtons("Option Button 10").Value = 1 Then
        Sheets("บันทึกข้อมูล").Range("c5") = 2
    End If


      


End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#53

Post by snasui »

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

Code: Select all

If ActiveSheet.OptionButtons("Option Button 9").Value = 1 Then
    With Sheets("บันทึกข้อมูล")
        If .Range("c5") = "" Then
            .Range("c5") = 1
        ElseIf .Range("f5") = "" Then
            .Range("f5") = 1
        Else
            .Range("i5") = 1
        End If
    End With
End If
If ActiveSheet.OptionButtons("Option Button 10").Value = 1 Then
    With Sheets("บันทึกข้อมูล")
        If .Range("c5") = "" Then
            .Range("c5") = 2
        ElseIf .Range("f5") = "" Then
            .Range("f5") = 2
        Else
            .Range("i5") = 2
        End If
    End With
End If
ส่วนการประยุกต์ให้บันทึกในบรรทัดถัด ๆ ไปก็ใส่ตัวแปรเข้าไปได้เช่นกัน ซึ่งต้องเขียนมาเอง ติดแล้วค่อยถามกันต่อครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#54

Post by porkub1 »

:cp: :cp: :thup: :thup: อันนี้แหละครับ ที่ผมติดอยู่ครับ อาจารย์ แต่ขอเพิ่มเติมนะครับ
เรื่อง userform ที่ผมได้เคยถามไป
จาก userform4 จากในไฟล์นะครับ คือ เมื่อคลิกบันทึกในข้อ 3.2 จะมี userform ปรากฏขึ้นมา จากสูตรของอาจารย์ให้ ผมสามารถ บันทึก ได้ 3 ครั้งจากที่ผมกำหนดไว้ แต่ที่นี้ผมจะใช้ userform ดังกล่าว ในข้อ 3.3 หรือ ข้ออื่นๆที่มีได้ หรือไม่ครับ

ในแนวทางแก้ปัญหาที่ผมคิดคือ ต้องสร้าง userform ใหม่ในทุกข้อ แต่ข้อคำถามผมจะมี 80 กว่าข้อเลยครับ

จะเขียนโค้ดอย่างไรดีครับ เช่น จะกำหนด กรณีเป็นข้อ 3.3 จะบันทึกข้อมูล ใน D14 G14 J14 เป็นต้นครับ
ขอบคุณครับ อาจารย์ เหลือเรื่องนี้เป็นเรื่องสุดท้ายแล้ว แบบสอบถามจะเสร็จสมบูรณ์ ถ้าได้รับคำชม ผมขอยกความดีให้กับอาจารย์ครับ เพราะช่วยเหลือผมตั้งแต่ นับหนึ่งจนเสร็จ ขอบคุณครับ

โค้ดจะอยู่ใน Userform 4 อยู่ในปุ่ม บันทึก ครับ

Code: Select all

If ComboBox1.Value = "" Then
MsgBox ("กรุณาเลือก"), vbOKOnly + 16, "กรุณาอ่าน"

ElseIf TextBox1.Value = "" Then
MsgBox ("กรุณาระบุข้อที่ท่านตอบ"), vbOKOnly + 16, "กรุณาอ่าน"
Else:
strvaluemsg = MsgBox("ข้อมูลของท่านได้บันทึกแล้ว ", vbOKOnly + 64, "ขอบคุณ")
With Worksheets("บันทึกข้อมูล")
            If .Range("d5") = "" Then
                .Range("d5") = ComboBox1.Value
            ElseIf .Range("g5") = "" Then
                .Range("g5") = ComboBox1.Value
            ElseIf .Range("j5") = "" Then
                .Range("j5") = ComboBox1.Value
            End If
             If .Range("e5") = "" Then
                .Range("e5") = TextBox1.Value
            ElseIf .Range("h5") = "" Then
                .Range("h5") = TextBox1.Value
                ElseIf .Range("k5") = "" Then
                .Range("k5") = TextBox1.Value
                
            End If


    


Unload Me
End With
End If
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#55

Post by snasui »

:D สำหรับการใช้ VBA โอกาสที่ไม่สามารถทำได้แทบไม่มี เพราะเป็นการเขียนโปรแกรม แต่จะทำได้แค่ไหนขึ้นอยู่กับผู้ใช้

ดังนั้น ย่อมต้องสามารถใช้ UserForm เดียวกระทำกับทุกข้อได้ ส่วนจะทำอย่างไร ต้องเขียนมาเอง ผมได้ Guide ให้แล้วสองรอบว่าให้ใช้ตัวแปร ไม่ทราบว่าเข้าใจในสิ่งที่ผมสื่อไปหรือไม่และเข้าใจว่าอย่างไร ซึ่งผมคิดว่าเพียงพอแล้วที่จะลองเขียนมาเอง ติดแล้วค่อยถามกันต่อ หรือหากผมเข้าใจไม่ถูกต้องอย่างไรช่วยอธิบายมาใหม่

ที่เขียนมานั้นไม่พบว่าได้เขียนตามที่ผมแนะนำไป หากจะเขียน UserForm ให้กับทุกข้อก็แล้วแต่สะดวกครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#56

Post by porkub1 »

ได้ครับจะลองดูครับ ขอบคุณครับอาจารย์
Post Reply