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

ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#1

Post by 9KiTTi »

ผมนำ macro มาใช้นำเข้าไฟล์ text แต่พอนำเข้ามาแล้วไม่แสดงเป็นภาษาไทย พยายามหาทางจาก google แล้ว ก็ไม่สามารถแก้ไขได้ครับ และวันเดือนปี ก็เป็นชุดตัวเลขตามภาพ ขอความกรุณาแนะนำวิธีแก้ไขด้วยครับ
ขอบพระคุณครับ

ข้อความที่นำเข้าครับ

hospcode|provider|registerno|council|cid|prename|name|lname|sex|birth|providertype|startdate|outdate|movefrom|moveto|d_update
02xxxx|Manxxxx|||1250400201234|004|กล้วยไข|หอมทอง|2|19901001|06|20110401||||20190521111234
0xxx|Nisxxxx|||3251000431234|005|มะม่วง|กระท้อน|2|19631010|084|19991001||||20190312151234
0xxx|Parxxxx|||1259700111234|003|ชะอม|ลำใย|1|19910808|05|20140601|20151130||00219|20190312151234
0xxxx|Raxxxxx |||1130300081234|003|สวัสดี|สวัสดี|1|19930419|04|20190801||01107||20190903081234
0xxxx|rdrugstore_all|||rdrugstore_al|003|รพ.สต.xxxx|rdrugstore_al|1|20041001|09|20041001||||20180411131234
0xxxx|Sanxxxx|||1259700101234|004|สวัสดี|สวัสดี|2|19901214|04|20160501|20190707|02507|02333|20190808101234
0xxxx|Wixxxx|||3250200311234|003|หนุ่มน้อย|สาวสาว|1|19700209|04|19981001||02502||20190312151234
0xxxx|Witcxxxx |พ49110711234|02|3251000441234|005|สาวสาว|สาวสาว|2|19770228|03|20031001||10209||20200110131234
You do not have the required permissions to view the files attached to this post.
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#2

Post by parakorn »

แนบไฟล์โค้ด Macro ที่ว่ามาด้วยครับ การ set ภาษาของแต่ล่ะเครื่องไม่เหมือนกัน วิธีแก้ปัญหาแต่ล่ะเครื่องก็อาจจะแตกต่างกันออกไป ต้องลองหลายๆวิธีครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#3

Post by 9KiTTi »

parakorn wrote: Wed Nov 04, 2020 10:54 am แนบไฟล์โค้ด Macro ที่ว่ามาด้วยครับ การ set ภาษาของแต่ล่ะเครื่องไม่เหมือนกัน วิธีแก้ปัญหาแต่ล่ะเครื่องก็อาจจะแตกต่างกันออกไป ต้องลองหลายๆวิธีครับ
ขอโทษครับ ผมใช้ VB ครับ เป็นคำสั่งนำเข้า ผมพิมพ์ผิดครับ
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#4

Post by parakorn »

9KiTTi wrote: Wed Nov 04, 2020 3:44 pm
parakorn wrote: Wed Nov 04, 2020 10:54 am แนบไฟล์โค้ด Macro ที่ว่ามาด้วยครับ การ set ภาษาของแต่ล่ะเครื่องไม่เหมือนกัน วิธีแก้ปัญหาแต่ล่ะเครื่องก็อาจจะแตกต่างกันออกไป ต้องลองหลายๆวิธีครับ
ขอโทษครับ ผมใช้ VB ครับ เป็นคำสั่งนำเข้า ผมพิมพ์ผิดครับ
ลองแนบไฟล์มาดูตามกฎข้อ 5 ของบอร์ดครับ
เพื่อนๆจะได้ช่วยกันดูใด้ครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#5

Post by 9KiTTi »

ตัว code ที่ผมนำมาใช้ครับ

Sub CombineTextFiles()
Dim FilesToOpen
Dim x As Integer
Dim wkbAll As Workbook
Dim wkbTemp As Workbook
Dim sDelimiter As String

On Error GoTo ErrHandler
Application.ScreenUpdating = False

sDelimiter = "|"

FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Text Files (*.txt), *.txt", _
MultiSelect:=True, Title:="Text Files to Open")

If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If

x = 1
Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
wkbTemp.Sheets(1).Copy
Set wkbAll = ActiveWorkbook
wkbTemp.Close (False)
wkbAll.Worksheets(x).Columns("A:A").TextToColumns _
Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=False, _
Comma:=False, Space:=False, _
Other:=True, OtherChar:="|"
x = x + 1

While x <= UBound(FilesToOpen)
Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
With wkbAll
wkbTemp.Sheets(1).Move After:=.Sheets(.Sheets.Count)
.Worksheets(x).Columns("A:A").TextToColumns _
Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=False, _
Comma:=False, Space:=False, _
Other:=True, OtherChar:=sDelimiter
End With
x = x + 1
Wend

ActiveSheet.Range("A1").AutoFilter Field:=1, Visibledropdown:=True
ActiveSheet.Range("A1").AutoFilter Field:=2, Visibledropdown:=True


ExitHandler:
Application.ScreenUpdating = True
Set wkbAll = Nothing
Set wkbTemp = Nothing
Exit Sub

ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub

พอนำเข้าแล้วไม่เป็นภาษาไทย
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#6

Post by parakorn »

วิธีแนบไฟล์ ให้กดที่ Full Editor & Preview ด้านล่างจะเป็นการเข้าสู่การ Set Up การโพสต์ต่างๆ และ การแนบไฟล์ ครับ

ลองแนบไฟล์ Text ตัดข้อมูลส่วนหนึ่งมาเป็นตัวอย่าง
พร้อมแนบไฟล์ Excel ที่มีโค้ดนี้ เพื่อที่ผู้ที่เข้ามาศึกษา จะได้ทดลองทำได้
และ สะดวกต่อผู้ที่ตอบคำถาม ในการเข้าถึงปัญหาได้ครับ
เท่าที่ดูน่าจะเกิดจากการไม่ Set ค่าภาษาภายในโค้ด ลองแนบไฟล์มาดูก่อนจะได้ปรับโค้ดให้ได้ครับ

ส่วนการโพสต์ โค้ด ให้ดูกฎของบอร์ดข้อที่ 6 ครับ
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#7

Post by parakorn »

ขอตัวอย่างไฟล์ Text ด้วยครับผม
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#8

Post by 9KiTTi »

parakorn wrote: Thu Nov 05, 2020 4:13 pm ขอตัวอย่างไฟล์ Text ด้วยครับผม
ผมแนบไฟล์ text (txt) ไม่ได้ครับ ระบบแจ้งนามสุกลไม่ถูกต้องครับ
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#9

Post by parakorn »

9KiTTi wrote: Fri Nov 06, 2020 1:59 pm
parakorn wrote: Thu Nov 05, 2020 4:13 pm ขอตัวอย่างไฟล์ Text ด้วยครับผม
ผมแนบไฟล์ text (txt) ไม่ได้ครับ ระบบแจ้งนามสุกลไม่ถูกต้องครับ
บีบไฟล์ ด้วย win rar ก่อนครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#10

Post by 9KiTTi »

parakorn wrote: Fri Nov 06, 2020 3:16 pm
9KiTTi wrote: Fri Nov 06, 2020 1:59 pm
parakorn wrote: Thu Nov 05, 2020 4:13 pm ขอตัวอย่างไฟล์ Text ด้วยครับผม
ผมแนบไฟล์ text (txt) ไม่ได้ครับ ระบบแจ้งนามสุกลไม่ถูกต้องครับ
บีบไฟล์ ด้วย win rar ก่อนครับ
ไฟล์ text ตัวอย่างครับ ขอบพระคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#11

Post by snasui »

:D การโพสต์ Code ควรจะวางแล้วให้แสดงเป็นตัวอักษรแบบ Code ดูได้ที่กฎการใช้บอร์ดข้อ 5 ด้านบน :roll: วางแล้วจะได้ดังลักษณะด้านล่างนี้ ไม่ใช่แสดงเป็นตัวอักษรธรรมดา จะได้สะดวกในการอ่านทั้งยังสะดวกต่อการคัดลอกไปทดสอบครับ

ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub CombineTextFiles()
    Dim FilesToOpen
    Dim x As Integer
    Dim wkbAll As Workbook
    Dim wkbTemp As Workbook
    Dim sDelimiter As String

    On Error GoTo ErrHandler
    Application.ScreenUpdating = False

    sDelimiter = "|"

    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="Text Files (*.txt), *.txt", _
      MultiSelect:=True, Title:="Text Files to Open")

    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "No Files were selected"
        GoTo ExitHandler
    End If
    x = 1
'    Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
    Workbooks.OpenText Filename:=FilesToOpen(x), Origin:= _
        65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True

'    wkbTemp.Sheets(1).Copy
'    Set wkbAll = ActiveWorkbook
'    wkbTemp.Close (False)
'    wkbAll.Worksheets(x).Columns("A:A").TextToColumns _
'      Destination:=Range("A1"), DataType:=xlDelimited, _
'      TextQualifier:=xlDoubleQuote, _
'      ConsecutiveDelimiter:=False, _
'      Tab:=False, Semicolon:=False, _
'      Comma:=False, Space:=False, _
'      Other:=True, OtherChar:="|"
'    x = x + 1
'
'    While x <= UBound(FilesToOpen)
'        Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
'        With wkbAll
'            wkbTemp.Sheets(1).Move After:=.Sheets(.Sheets.Count)
'            .Worksheets(x).Columns("A:A").TextToColumns _
'              Destination:=Range("A1"), DataType:=xlDelimited, _
'              TextQualifier:=xlDoubleQuote, _
'              ConsecutiveDelimiter:=False, _
'              Tab:=False, Semicolon:=False, _
'              Comma:=False, Space:=False, _
'              Other:=True, OtherChar:=sDelimiter
'        End With
'        x = x + 1
'    Wend

ExitHandler:
    Application.ScreenUpdating = True
    Set wkbAll = Nothing
    Set wkbTemp = Nothing
    Exit Sub

ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#12

Post by 9KiTTi »

snasui wrote: Sat Nov 07, 2020 12:16 pm :D การโพสต์ Code ควรจะวางแล้วให้แสดงเป็นตัวอักษรแบบ Code ดูได้ที่กฎการใช้บอร์ดข้อ 5 ด้านบน :roll: วางแล้วจะได้ดังลักษณะด้านล่างนี้ ไม่ใช่แสดงเป็นตัวอักษรธรรมดา จะได้สะดวกในการอ่านทั้งยังสะดวกต่อการคัดลอกไปทดสอบครับ

ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub CombineTextFiles()
    Dim FilesToOpen
    Dim x As Integer
    Dim wkbAll As Workbook
    Dim wkbTemp As Workbook
    Dim sDelimiter As String

    On Error GoTo ErrHandler
    Application.ScreenUpdating = False

    sDelimiter = "|"

    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="Text Files (*.txt), *.txt", _
      MultiSelect:=True, Title:="Text Files to Open")

    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "No Files were selected"
        GoTo ExitHandler
    End If
    x = 1
'    Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
    Workbooks.OpenText Filename:=FilesToOpen(x), Origin:= _
        65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True

'    wkbTemp.Sheets(1).Copy
'    Set wkbAll = ActiveWorkbook
'    wkbTemp.Close (False)
'    wkbAll.Worksheets(x).Columns("A:A").TextToColumns _
'      Destination:=Range("A1"), DataType:=xlDelimited, _
'      TextQualifier:=xlDoubleQuote, _
'      ConsecutiveDelimiter:=False, _
'      Tab:=False, Semicolon:=False, _
'      Comma:=False, Space:=False, _
'      Other:=True, OtherChar:="|"
'    x = x + 1
'
'    While x <= UBound(FilesToOpen)
'        Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
'        With wkbAll
'            wkbTemp.Sheets(1).Move After:=.Sheets(.Sheets.Count)
'            .Worksheets(x).Columns("A:A").TextToColumns _
'              Destination:=Range("A1"), DataType:=xlDelimited, _
'              TextQualifier:=xlDoubleQuote, _
'              ConsecutiveDelimiter:=False, _
'              Tab:=False, Semicolon:=False, _
'              Comma:=False, Space:=False, _
'              Other:=True, OtherChar:=sDelimiter
'        End With
'        x = x + 1
'    Wend

ExitHandler:
    Application.ScreenUpdating = True
    Set wkbAll = Nothing
    Set wkbTemp = Nothing
    Exit Sub

ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub

ขออภัยครับ ต่อไปจะระมัดระวังให้มากขึ้นครับ ขอบพระคุณครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#13

Post by 9KiTTi »

snasui wrote: Sat Nov 07, 2020 12:16 pm :D การโพสต์ Code ควรจะวางแล้วให้แสดงเป็นตัวอักษรแบบ Code ดูได้ที่กฎการใช้บอร์ดข้อ 5 ด้านบน :roll: วางแล้วจะได้ดังลักษณะด้านล่างนี้ ไม่ใช่แสดงเป็นตัวอักษรธรรมดา จะได้สะดวกในการอ่านทั้งยังสะดวกต่อการคัดลอกไปทดสอบครับ

ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub CombineTextFiles()
    Dim FilesToOpen
    Dim x As Integer
    Dim wkbAll As Workbook
    Dim wkbTemp As Workbook
    Dim sDelimiter As String

    On Error GoTo ErrHandler
    Application.ScreenUpdating = False

    sDelimiter = "|"

    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="Text Files (*.txt), *.txt", _
      MultiSelect:=True, Title:="Text Files to Open")

    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "No Files were selected"
        GoTo ExitHandler
    End If
    x = 1
'    Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
    Workbooks.OpenText Filename:=FilesToOpen(x), Origin:= _
        65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True

'    wkbTemp.Sheets(1).Copy
'    Set wkbAll = ActiveWorkbook
'    wkbTemp.Close (False)
'    wkbAll.Worksheets(x).Columns("A:A").TextToColumns _
'      Destination:=Range("A1"), DataType:=xlDelimited, _
'      TextQualifier:=xlDoubleQuote, _
'      ConsecutiveDelimiter:=False, _
'      Tab:=False, Semicolon:=False, _
'      Comma:=False, Space:=False, _
'      Other:=True, OtherChar:="|"
'    x = x + 1
'
'    While x <= UBound(FilesToOpen)
'        Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
'        With wkbAll
'            wkbTemp.Sheets(1).Move After:=.Sheets(.Sheets.Count)
'            .Worksheets(x).Columns("A:A").TextToColumns _
'              Destination:=Range("A1"), DataType:=xlDelimited, _
'              TextQualifier:=xlDoubleQuote, _
'              ConsecutiveDelimiter:=False, _
'              Tab:=False, Semicolon:=False, _
'              Comma:=False, Space:=False, _
'              Other:=True, OtherChar:=sDelimiter
'        End With
'        x = x + 1
'    Wend

ExitHandler:
    Application.ScreenUpdating = True
    Set wkbAll = Nothing
    Set wkbTemp = Nothing
    Exit Sub

ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub
ผมนำไปทดสอบใช้งานแล้วครับ สามารถนำเข้าแล้วไม่มีปัญหาภาษาไทย แต่ถ้าหากไม่สามารถนำเข้า text ไฟล์ได้ครั้งละหลายๆไฟล์ครับ และผมก็ยังแก้เรื่องการแสดงผลตัวเลขไม่ได้ครับ รบกวนอาจารย์แนะนำผมด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#14

Post by snasui »

:D การแสดงผลตัวเลขเกิดจาก Format ไม่ใช่ค่าผิดพลาด ค่าจริงเป็นเท่าไรก็เท่านั้น ไม่ใช่เรื่องที่น่ากังวลครับ

หากต้องการจะให้แสดง Format เป็นแบบไหนสามารถเขียน Code เข้าไปจัดการได้ตามสะดวก ตัวอย่างหนึ่งของการจัด Format ดูได้ที่นี่ครับ viewtopic.php?t=11372#p70421

การนำเข้าหลาย ๆ ไฟล์ก็ทำได้ตามปกติ หลักการคือเปิดไฟล์มาแล้วคัดลอกไปวางในตำแหน่งปลายทาง ฯลฯ ครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#15

Post by 9KiTTi »

snasui wrote: Sat Nov 07, 2020 8:14 pm :D การแสดงผลตัวเลขเกิดจาก Format ไม่ใช่ค่าผิดพลาด ค่าจริงเป็นเท่าไรก็เท่านั้น ไม่ใช่เรื่องที่น่ากังวลครับ

หากต้องการจะให้แสดง Format เป็นแบบไหนสามารถเขียน Code เข้าไปจัดการได้ตามสะดวก ตัวอย่างหนึ่งของการจัด Format ดูได้ที่นี่ครับ viewtopic.php?t=11372#p70421

การนำเข้าหลาย ๆ ไฟล์ก็ทำได้ตามปกติ หลักการคือเปิดไฟล์มาแล้วคัดลอกไปวางในตำแหน่งปลายทาง ฯลฯ ครับ
สุดความสามารถครับอาจารย์ ผมลองมา 2 วันแล้ว ค้นใน google ก็ไม่ได้ครับ code ที่อาจารย์ปรับให้สามารถนำเข้าเป็นภาษาไทยได้ แต่ในช่อง cid กับ d_update ซึ่งเป็นตัวเลขบัตรประจำตัวประชาชนกับวันเดือนปี ยังต้องแก้โดยไม่ให้มีจุดทศนิยมครับ และไม่สามารถนำเข้าคร่าวละๆหลายไฟล์ได้ครับ รบกวนอาจารย์ช่วยแนะนำด้วยครับ ขอบพระคุณครับ
You do not have the required permissions to view the files attached to this post.
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#16

Post by 9KiTTi »

snasui wrote: Sat Nov 07, 2020 8:14 pm :D การแสดงผลตัวเลขเกิดจาก Format ไม่ใช่ค่าผิดพลาด ค่าจริงเป็นเท่าไรก็เท่านั้น ไม่ใช่เรื่องที่น่ากังวลครับ

หากต้องการจะให้แสดง Format เป็นแบบไหนสามารถเขียน Code เข้าไปจัดการได้ตามสะดวก ตัวอย่างหนึ่งของการจัด Format ดูได้ที่นี่ครับ viewtopic.php?t=11372#p70421

การนำเข้าหลาย ๆ ไฟล์ก็ทำได้ตามปกติ หลักการคือเปิดไฟล์มาแล้วคัดลอกไปวางในตำแหน่งปลายทาง ฯลฯ ครับ

Code: Select all

Sub ImportTXTFiles()
    Dim fso As Object
    Dim xlsheet As Worksheet
    Dim qt As QueryTable
    Dim txtfilesToOpen As Variant, txtfile As Variant

    Application.ScreenUpdating = False
    Set fso = CreateObject("Scripting.FileSystemObject")

    txtfilesToOpen = Application.GetOpenFilename _
                 (FileFilter:="Text Files (*.txt), *.txt", _
                  MultiSelect:=True, Title:="Text Files to Open")

    For Each txtfile In txtfilesToOpen
        ' FINDS EXISTING WORKSHEET
        For Each xlsheet In ThisWorkbook.Worksheets
            If xlsheet.Name = Replace(fso.GetFileName(txtfile), ".txt", "") Then
                xlsheet.Activate
                GoTo ImportData
            End If
        Next xlsheet

        ' CREATES NEW WORKSHEET IF NOT FOUND
        Set xlsheet = ThisWorkbook.Worksheets.Add( _
                             After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        xlsheet.Name = Replace(fso.GetFileName(txtfile), ".txt", "")
        xlsheet.Activate
        GoTo ImportData

ImportData:
        ' DELETE EXISTING DATA
        ActiveSheet.Range("A:Z").EntireColumn.Delete xlShiftToLeft

        ' IMPORT DATA FROM TEXT FILE
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & txtfile, _
          Destination:=ActiveSheet.Cells(1, 1))
            .TextFileParseType = xlDelimited
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFilePlatform = 65001
            .TextFileDecimalSeparator = ","
            .TextFileOtherDelimiter = "|"

            .Refresh BackgroundQuery:=False
        End With

ActiveSheet.Range("A1").AutoFilter Field:=1, Visibledropdown:=True
ActiveSheet.Range("A1").AutoFilter Field:=2, Visibledropdown:=True

        For Each qt In ActiveSheet.QueryTables
            qt.Delete
        Next qt
    Next txtfile

    Application.ScreenUpdating = True
    MsgBox "Successfully imported text files!", vbInformation, "SUCCESSFUL IMPORT"

    Set fso = Nothing
End Sub

ตอนนี้ผมปรับใช้ code นี้ครับ แต่ยังเหลือปัญหาที่ยังแก้ไม่ได้คือเรื่องการจัด format ครับ และถ้าหากไม่ได้เลือกไฟล์นำเข้าจะมี error แจ้งขึ้นมาครับ รบกวนอาจารย์ช่วยผมด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#17

Post by snasui »

:D แนบไฟล์ล่าสุดที่มี Code นี้มาด้วยจะได้ตอบต่อไปจากนั้นครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#18

Post by 9KiTTi »

snasui wrote: Mon Nov 09, 2020 7:58 pm :D แนบไฟล์ล่าสุดที่มี Code นี้มาด้วยจะได้ตอบต่อไปจากนั้นครับ
ขอบพระคุณครับอาจารย์
You do not have the required permissions to view the files attached to this post.
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#19

Post by 9KiTTi »

ตอนนี้ปรับแก้สามารถให้แสดงข้อความตามรูปแบบที่ต้องการได้แล้วครับ เหลือเพียง error ที่แสดงตามภาพหากไม่ได้เลือกข้อมูออะไรเลยครับ

Code: Select all

Sub ImportTXTFiles()
    Dim fso As Object
    Dim xlsheet As Worksheet
    Dim qt As QueryTable
    Dim txtfilesToOpen As Variant, txtfile As Variant

    Application.ScreenUpdating = False
    Set fso = CreateObject("Scripting.FileSystemObject")

    txtfilesToOpen = Application.GetOpenFilename _
                 (FileFilter:="Text Files (*.txt), *.txt", _
                  MultiSelect:=True, Title:="เลือกข้อมูลที่ต้องการนำเข้า By KiTTi")

    For Each txtfile In txtfilesToOpen
        ' FINDS EXISTING WORKSHEET
        For Each xlsheet In ThisWorkbook.Worksheets
            If xlsheet.Name = Replace(fso.GetFileName(txtfile), ".txt", "") Then
                xlsheet.Activate
                GoTo ImportData
            End If
        Next xlsheet

        ' CREATES NEW WORKSHEET IF NOT FOUND
        Set xlsheet = ThisWorkbook.Worksheets.Add( _
                             After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        xlsheet.Name = Replace(fso.GetFileName(txtfile), ".txt", "")
        xlsheet.Activate
        GoTo ImportData

ImportData:
        ' DELETE EXISTING DATA
        ActiveSheet.Range("A:Z").EntireColumn.Delete xlShiftToLeft

        ' IMPORT DATA FROM TEXT FILE
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & txtfile, _
          Destination:=ActiveSheet.Cells(1, 1))
            .TextFileParseType = xlDelimited
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFilePlatform = 65001
            .TextFileOtherDelimiter = "|"

            .Refresh BackgroundQuery:=False
        End With

    ActiveSheet.Range("A1").AutoFilter Field:=1, Visibledropdown:=True
    ActiveSheet.Range("A1").AutoFilter Field:=2, Visibledropdown:=True

       Cells.Select
        Selection.NumberFormat = "0"
    
        For Each qt In ActiveSheet.QueryTables
            qt.Delete
        Next qt
    Next txtfile

    Application.ScreenUpdating = True
    MsgBox "นำข้อมูลเข้าสำเร็จแล้ว!", vbInformation, "สำเร็จแล้ว"

    Set fso = Nothing
End Sub

error.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: ขอสอบถามวิธีการแก้ไขนำไฟล์เข้าแล้วไม่เป็นภาษาไทย

#20

Post by puriwutpokin »

ดัก Error ไว้ใต้ ประกาศตัวแปรครับ

Code: Select all

On Error Resume Next
:shock: :roll: :D
Post Reply