#3
Post
by supisorn » Sun Jul 01, 2012 6:20 pm
จะทำ VBA สร้าง Code จากรายชื่อตามเงื่อนไขที่กำหนด
มีเพื่อนสมาชิกใน Pantip ได้สอบถามถึงโปรแกรมหรือใช้ฟังก์ชั่นของ Excel ในการสร้าง Code ตามเงื่อนไข ซึ่งต้องการจัดเก็บประวัติเรียงตามตัวอักษรตัวแรกของชื่อ แล้วตามด้วยตัวเลขตามอักษรอีก 3 หลัก และมีเครื่องหมาย “-“ คั่นระหว่างชื่อและนามสกุล โดยแสดงชื่อและนามสกุลเป็นเลข 4 หลัก เท่านั้น โดยมีเงื่อนไขการเปลี่ยนตัวอักษรเป็นตัวเลขดังนี้
ก – ง แทนด้วยหมายเลข 1 ( ก ข ค ฆ ง)
จ – ญ แทนด้วยหมายเลข 2 (จ ฉ ช ซ ฌ ญ )
ฎ – ณ แทนด้วยหมายเลข 3 (ฎ ฏ ฐ ฑ ฒ ณ)
ด – น แทนด้วยหมายเลข 4 (ด ต ถ ท ธ น)
บ – ฟ แทนด้วยหมายเลข 5 (บ ป ผ ฝ พ ฟ)
ภ – ฤ แทนด้วยหมายเลข 6 (ภ ม ย ร ล ว ฤ)
ศ – ฮ แทนด้วยหมายเลข 7 (ศ ษ ส ห ฬ อ ฮ)
ทำตามตัวอย่างแล้ว copy code ที่อาจารย์ลงในเว็บ
Option ExplicitFunction GenerateCode(r As Variant) As String Dim i As Integer, k As Integer Dim t As String, tt As String Dim t0 As String, t1 As String Dim t22 As String tt = Left(r, Application.Find(" ", r) - 1) & "000" t22 = Mid(r, Application.Find(" ", r) + 1, 255) & "000" Select Case Mid(r, 1, 1) Case "เ", "ไ", "ใ", "โ", "แ" t1 = Mid(r, 2, 1) k = 3 Case Else t1 = Left(r, 1) k = 2 End Select For i = k To Len(tt) Select Case Mid(tt, i, 1) Case "ก", "ข", "ค", "ฆ", "ง" t = t & 1 Case "จ", "ฉ", "ช", "ซ", "ฌ", "ญ" t = t & 2 Case "ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ" t = t & 3 Case "ด", "ต", "ถ", "ท", "ธ", "น" t = t & 4 Case "บ", "ป", "ผ", "ฝ", "พ", "ฟ" t = t & 5 Case "ภ", "ม", "ย", "ร", "ล", "ว", "ฤ" t = t & 6 Case "ศ", "ษ", "ห", "ฬ", "อ", "ฮ" t = t & 8 Case 0 t = t & 0 End Select Next For i = 1 To Len(t22) Select Case Mid(t22, i, 1) Case "ก", "ข", "ค", "ฆ", "ง" t0 = t0 & 1 Case "จ", "ฉ", "ช", "ซ", "ฌ", "ญ" t0 = t0 & 2 Case "ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ" t0 = t0 & 3 Case "ด", "ต", "ถ", "ท", "ธ", "น" t0 = t0 & 4 Case "บ", "ป", "ผ", "ฝ", "พ", "ฟ" t0 = t0 & 5 Case "ภ", "ม", "ย", "ร", "ล", "ว", "ฤ" t0 = t0 & 6 Case "ศ", "ษ", "ห", "ฬ", "อ", "ฮ" t0 = t0 & 8 Case 0 t0 = t0 & 0 End Select Next GenerateCode = t1 & Left(t, 3) & "-" & Left(t0, 4)End Function
เอาไปวางใน vbe แล้ว ขึ้นโคด error ค่ะ แล้วในฟังค์ชั่น fx ก็ไม่ขึ้น generatecode ค่ะ
แล้วขอทราบการเปิดใช้งานแมโครด้วยค่ะ ขอบคุณค่ะ