เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้ ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
Page 1 of 2 12 LastLast
Results 1 to 10 of 20

Thread: ตรวจสอบ ข้อมูลใน TextBox

  1. #1
    pang
    Guest

    ตรวจสอบ ข้อมูลใน TextBox

    กรอกข้อมูลใน TextBox โดยมีเงื่อนไขว่า ต้องเป็นตัวอักษรและตามด้วยตัวเลข 6 ตัวดังนี้
    LN000001
    L000001
    G000001
    N000001
    ขอบคุณครับ

  2. #2
    เอก
    Guest
    ครับ ขอบคุณครับ
    แต่มาบอกทำไมล่ะครับ

  3. #3
    pang
    Guest
    ขอโทษครับที่บอกไม่ละเอียด:nonod:
    คืออยากให้ช่วยแนะนำคำสั่ง VBA เพื่อตรวจสอบน่ะครับ

  4. #4
    เอก
    Guest
    Quote Originally Posted by pang View Post
    ขอโทษครับที่บอกไม่ละเอียด:nonod:
    คืออยากให้ช่วยแนะนำคำสั่ง VBA เพื่อตรวจสอบน่ะครับ
    • จำเป็นต้องใช้ VBA มั๊ย? แล้วถ้ามีวิธีอื่นล่ะ..! ไม่รับพิจารณา ใช่หรือไม่?
    • ที่บอกว่า "อยากให้ช่วยแนะนำคำสั่ง VBA เพื่อตรวจสอบ" ตรวจสอบอะไรครับ?
    • ถ้าสื่อสารแบบเข้าใจคนเดียว ก็คงไม่มีใครช่วยได้นะครับ ไฟล์ตัวอย่างก็ไม่มี วัตถุประสงค์คืออะไร หรือจะเอาไปใช้อะไร ก็ไม่ชัดเจน
    • อย่าคิดว่า ผลลัพธ์ใดๆ ที่ต้องการ จะได้มาด้วยวิธีการเพียงอย่างเดียว และมีรูปแบบตายตัว เพราะอาจจะมีวิธีที่แตกต่างกันไปนับสิบ นับร้อยวิธี ขึ้นอยู่กับลักษณะข้อมูลจริง เพราะฉะนั้น ถามแบบนี้ คุณไม่มีทางได้คำตอบแน่ๆ :nonod:

  5. #5
    pang
    Guest
    ขอโทษเป็นอย่างสูงอีกครั้งครับ T_T
    คือว่าผมทำ UserForm ให้กรอกข้อมูลแล้ว ใน TextBox ก็ให้ใส่เลขที่ Job
    เมื่อกดปุ่ม OK ก็อยากเขียนคำสั่ง VBA ตรวจสอบเลขที่ Job ก่อนนะครับว่า
    เป็นไปตามเงื่อนไขที่ตั้งไว้ คือต้องเป็นตัวอักษร LN หรือ L หรือ G หรือ N
    แล้วตามด้วยตัวเลข 6 ตัวเช่น 001234 เท่านั้น
    ตอนนี้ทดลองทำได้บางส่วนแล้ว(เช็คตัวอักษรกับตัวเลข)..แต่ถ้ามีการเว้นวรรค หรือใส่เครื่องหมายจุด(.)ในตรวจเลข
    เราจะเขียนคำสั่งให้ตรวจสอบยังไงครับ
    แนบไฟล์มาด้วยครับ

  6. #6
    pang
    Guest
    ตอนนี้ผมลองใช้คำสั่งนี้ในการเช็คตัวอักษรกับตัวเลข..แต่ไม่มั่นใจว่ามีข้อบกพร่องหรือเปล่า..แล้วผมก็เขียนต่อให้ไป เช็คช่องว่างกับเครื่องหมายจุด(.) ไม่ได้แล้ว...รบกวนช่วยแนะนำด้วยครับ
    Private Sub CommandButton1_Click()
    If IsNumeric(Right(TextBox1, 6)) = True And Left(TextBox1, 2) = "LN" Then
    Else
    If IsNumeric(Right(TextBox1, 6)) = True And Left(TextBox1, 1) = "G" Then
    Else
    If IsNumeric(Right(TextBox1, 6)) = True And Left(TextBox1, 1) = "N" Then
    Else
    If IsNumeric(Right(TextBox1, 6)) = True And Left(TextBox1, 1) = "L" Then
    Else
    MsgBox "ข้อมูลผิด"
    TextBox1 = ""
    Exit Sub
    End If
    End If
    End If
    End If
    MsgBox "ทำคำสั่งต่อไป"

    End Sub

  7. #7
    gaka
    Guest
    ลองเอาอันนี้ไปเปลี่ยน sub procedure ของคุณ
    Code:
    Private Sub CommandButton1_Click()
    Dim RegEx As Object
    Set RegEx = CreateObject("vbscript.regexp")
    With RegEx
        .Global = False
        .IgnoreCase = True
        .Pattern = "^[LN|G|N|L]\d{6}$"
    'เพราะให้ขึ้นต้นด้วย LN หรือ G หรือ N หรือ L แล้วตามด้วยตัวเลข 6 ตัวเท่านั้น อย่างอื่นใส่เข้าไปจะผิดหมด
    End With
    If RegEx.test(Trim(TextBox1)) Then
        MsgBox "ข้อมูลมีรูปแบบถูกต้อง"
        
        Else
                        MsgBox "รูปแบบข้อมูลไม่ถูกต้อง"
                        TextBox1 = ""
        End If
        
    End Sub
    สงสัยอ่านเรื่องนี้เพิ่มเติม
    http://www.google.com/custom?domains...ORID%3A1&hl=en

  8. #8
    pang
    Guest
    โห...ใช้ได้ผลดีมากเลยครับ(แต่..ไม่เข้าใจ code นี้เลย..จะพยายามศึกษาต่อไปครับ)
    Dim RegEx As Object
    Set RegEx = CreateObject("vbscript.regexp")
    With RegEx
    .Global = False
    .IgnoreCase = True
    .Pattern = "^(LN\d{6}$)|^[G|N|L]\d{7}$"
    End With
    ขอบพระคุณ คุณเอกและคุณ gaka มากๆเลยครับ ที่ช่วยเรื่อง Code และการตั้งกระทู้ถาม

  9. #9
    pang
    Guest
    ไป Search เจอ..Code นี้มาครับ...เค้าห้ามไม่ให้กดเลย..ก็ดีเหมือนกัน(แต่ผมยัง งงๆ เหมือนเดิม)
    Private Sub TextBox1_Change()
    If InStr(TextBox1.Text, " ") Then
    MsgBox "ห้ามเว้นวรรค"
    TextBox1.SelStart = InStr(TextBox1.Text, " ") - 1
    TextBox1.SelLength = 1
    TextBox1.SetFocus
    Else
    If InStr(TextBox1.Text, ".") Then
    MsgBox "ห้ามใส่ (.)"
    TextBox1.SelStart = InStr(TextBox1.Text, ".") - 1
    TextBox1.SelLength = 1
    TextBox1.SetFocus
    End If
    End If
    End Sub

  10. #10
    อรวีร์
    Guest

    Smile

    ลองใช้แบบ Code ธรรมดาแบบนี้ค่ะ
    Code:
    Private Sub TextBox1_Change()
    Dim CharOK As Boolean, C2 As String, Txt As String, LenT As Long
    CharOK = True: Txt = TextBox1.Text: LenT = Len(Txt)
    Select Case LenT
    Case 1
        If InStr("LGN", Txt) = 0 Then CharOK = False
    Case 2
        C2 = Mid(Txt, 2, 1)
        If Left(Txt, 2) <> "LN" And (C2 < "0" Or C2 > "9") Then CharOK = False
    Case Is > 2
        If (LenT + (Left(Txt, 2) = "LN")) > 7 Then
            CharOK = False
        Else
            If Right(Txt, 1) < "0" Or Right(Txt, 1) > "9" Then
                CharOK = False
            End If
        End If
    End Select
    If Not CharOK Then
        TextBox1.Text = Left(Txt, LenT - 1)
    End If
    End Sub
    แล้วพยายามใส่ข้อมูลที่ไม่ถูกต้องดูค่ะ

Similar Threads

  1. ข้อมูลใน Excel ที่เกิน 100k รายการ
    By batmaner in forum Excel Expert Forum Library 2012 - 2007
    Replies: 1
    Last Post: 26 May 2010, 19:01
  2. มีวิธี unique ข้อมูลใน excel มั้ยครับ
    By smash in forum Excel Expert Forum Library 2012 - 2007
    Replies: 6
    Last Post: 23 Mar 2010, 13:30
  3. การแบ่ง group ข้อมูลใน excel
    By p_d in forum Excel Expert Forum Library 2012 - 2007
    Replies: 3
    Last Post: 13 Dec 2008, 19:21
  4. ตรวจสอบ range
    By poomchit in forum Excel Expert Forum Library 2012 - 2007
    Replies: 1
    Last Post: 26 Sep 2008, 20:29
  5. Replies: 2
    Last Post: 17 Nov 2007, 00:50

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •