: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 ใน excel

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

รบกวนถาม vba ใน excel

#1

Post by supisorn »

การกำหนดเงื่อนไข ก ข ค ฆ ง = 1 ค่ะ ทำตามแล้ว copy ไปวางแล้ว ทำไม่ได้ค่ะ ขึ้นโค้ด errer ค่ะ รบกวนช่วยสอนแบบละเอียดได้ไหมคะ ไม่เคยใช้ค่ะ พอดีจะนำไปทำงานเกี่ยวกับแผนที่ภาษีนะค่ะ ขอขอบพระคุณล่วงหน้าเป็นอย่างสูงค่ะ
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 ใน excel

#2

Post by snasui »

:lol: ไม่ทราบว่าต้องการจะทำอะไร ที่บอกว่าลองทำแล้วช่วยอธิบายปัญหา พร้อมแนบไฟล์อย่างอย่าง ระบุคำตอบที่ต้องการมาด้วยครับ

สำหรับ VBA จะเน้นตอบที่ติดปัญหา ไม่สามารถสอนละเอียดได้ เนื่องจากเป็น Programming หรือเป็นภาษาคอมพิวเตอร์ จำเป็นจะต้องมีความรู้มาก่อนตามลำดับ
supisorn
Member
Member
Posts: 8
Joined: Sun Jul 01, 2012 10:36 am

รบกวนถาม vba ใน excel

#3

Post by supisorn »

จะทำ 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 ค่ะ
แล้วขอทราบการเปิดใช้งานแมโครด้วยค่ะ ขอบคุณค่ะ
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 ใน excel

#4

Post by snasui »

:D ควรแนบไฟล์ที่ลองทำมาด้วยครับ จะได้เห็นว่าไฟล์มีนามสกุลเป็นอะไร และวาง Code ไว้ที่ใด เมื่อดูแล้วจึงจะสามารถบอกได้ว่าควรจะต้องกำหนดค่าอะไร อย่างไรบ้าง การโพสต์มาเฉพาะ Code ไม่ได้ช่วยให้เห็นสภาพปัญหาจริงและต้องเสียเวลาสร้างไฟล์ตัวอย่างขึ้นมาเองครับ
supisorn
Member
Member
Posts: 8
Joined: Sun Jul 01, 2012 10:36 am

รบกวนถาม vba ใน excel

#5

Post by supisorn »

ถ้าทำใน excel แล้วส่งไฟล์ ให้ทางเมล์ได้ จะขอบพระคุณเป็นอย่างสูงค่ะ
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 ใน excel

#6

Post by snasui »

:D ไม่ควรส่งทางเมลครับ ควรเป็นไฟล์ตัวอย่าง สร้างขึ้นมาใหม่ ไม่ใช่นำไฟล์จริงมาถามครับ
supisorn
Member
Member
Posts: 8
Joined: Sun Jul 01, 2012 10:36 am

รบกวนถาม vba ใน excel

#7

Post by supisorn »

Alt +Q แล้วเปิดใช้งาน macro อย่างไรคะ
supisorn
Member
Member
Posts: 8
Joined: Sun Jul 01, 2012 10:36 am

Re: รบกวนถาม vba ใน excel

#8

Post by supisorn »

เปิดใช้งานแล้วไมขึ้น generatecode ค่ะ
Attachments
ตัวอย่าง.xlsx
(8.58 KiB) Downloaded 1 time
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 ใน excel

#9

Post by snasui »

:D ไฟลที่แนบมาไม่มี Code ติดมาด้วยครับ ไฟล์ที่จะสามารถแนบ Code ได้จะต้องมีนามสกุลเป็น .xlsm หรือ .xls

สำหรับการเปิดการใช้งาน Macro ดูได้ที่นี่ครับ http://www.snasui.com/viewtopic.php?p=14435#p14435
supisorn
Member
Member
Posts: 8
Joined: Sun Jul 01, 2012 10:36 am

บกวนถาม vba ใน excel

#10

Post by supisorn »

เปิดใช้ macro แล้วค่ะ แล้วมาเปิด excel พิมพ์ชื่อ แล้วใช้ฟังค์ชั่น fx แล้วกด enter ก็ขึ้น microsoft visuaul basic แล้วขึ้น Compile error Expected:end of statement ok help ค่ะ
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 ใน excel

#11

Post by snasui »

:| แนบไฟล์มาด้วยครับ
supisorn
Member
Member
Posts: 8
Joined: Sun Jul 01, 2012 10:36 am

Re: รบกวนถาม vba ใน excel

#12

Post by supisorn »

ขึ้น นามสกุล xlsm แล้ว ค่ะ แต่ไม่ขึ้น ฟังค์ชั่น generatecode ค่ะ
Attachments
แปลชื่อ.xlsm
(8.58 KiB) Downloaded 5 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 ใน excel

#13

Post by snasui »

:lol: คงต้องเป็นเช่นนั้นครับ เพราะว่าไม่มี Code ในไฟล์ที่แนบมานี้ครับ สูตรนั้นจำเป็นจะต้องมี Code อยู่ด้วยถึงจะทำงานได้

การเปลี่ยนแปลงนามสกุลไฟล์ไม่ใช่นำไฟล์ที่เป็น .xlsx เดิมซึ่งไม่มี Code อยู่ มา Save as เป็น .xlsm แล้วมันจะมี Code ขึ้นมาเองได้ ให้ทำตามลำดับดังนี้ครับ
  1. ไปที่ http://snasui.blogspot.com/2010/07/vba-code.html แล้ว Copy Code
  2. เปิดโปรแกรม Excel > กำหนดให้ใช้งาน Macro (ทำครั้งเดียว ถ้าเคยทำแล้วไม่ต้องทำอีก) > เปิดไฟล์ที่ต้องการ
  3. กดแป้น Alt+F11 > Insert > Module > วาง Code จากข้อ 1
  4. เขียนสูตรเพื่อทดสอบ Code ว่าทำงานตรงกับที่ต้องการหรือไม่
  5. Save file เป็นนามสกุล .xlsm
supisorn
Member
Member
Posts: 8
Joined: Sun Jul 01, 2012 10:36 am

รบกวนถาม vba ใน excel

#14

Post by supisorn »

ทำยังไง code ก็ไม่ขึ้น แต่ก็ขอบคุณมาก ๆ นะคะ ที่เสียสละเวลาตอบคำถาม จะพยามยามทำให้ได้ค่ะ ขอบคุณอีกครั้งค่ะ
Post Reply