Page 1 of 1

การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Wed Nov 29, 2017 10:57 am
by aapichaya
Module 1 Import ข้อมูลลงในsheet2
Module 2 เป็นการคลีนดาต้า อ่าค่ะ ตอนนี้ติดปัญหาการทำ Text to column ต้องการทำ text to column โดย Delimitersด้วยเครื่องหมาย " | " ในColumn L Destination column T ไปทางขวา ค่ะ
การทำ Text to column ข้อมูลชุดเเรกไม่มีปัญหา เเต่ชุดที่สองจะเกิด MsgBoxถามว่าต้องการจะ Replace มั้ยอ่ะค่ะ (ไม่ต้องการให้Replace แต่ต้องการให้ destination ต่อจากบรรทัดสุดท้ายของ Column Tและไปทางขวา ค่ะ)

Re: การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Wed Nov 29, 2017 5:47 pm
by logic
อ่าค่ะ เป็นภาษาแชท แก้ก่อนนะครับ ผิดกฎข้อ 1 ครับ

Re: การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Thu Nov 30, 2017 12:01 pm
by aapichaya
aapichaya wrote:Module 1 Import ข้อมูลลงในsheet2
Module 2 เป็นการคลีนดาต้า ตอนนี้ติดปัญหาการทำ Text to column ต้องการทำ text to column โดย Delimitersด้วยเครื่องหมาย " | " ในColumn L Destination column T ไปทางขวา
การทำ Text to column ข้อมูลชุดเเรกไม่มีปัญหา เเต่ชุดที่สองจะเกิด MsgBoxถามว่าต้องการจะ Replaces หรือไม่ (คือไม่ต้องการให้Replace แต่ต้องการให้ destination ต่อจากบรรทัดสุดท้ายของ Column Tและไปทางขวา )

Re: การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Fri Dec 01, 2017 6:45 am
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
    'Texttocolumn
    Range("L2:L" & Worksheets("Sheet2").UsedRange.Rows.Count).Select
    Selection.TextToColumns Destination:=Range("T2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
'Other code

Re: การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Mon Dec 11, 2017 2:39 pm
by aapichaya
ขอบคุณมากค่ะ การอัพโหลดข้อมูลและรันโค้ดรอบเเรกไม่มีปัญหาค่ะ เเต่เมื่ออัพโหลดข้อมูลและรันโค้ดรอบที่สอง destinstion ของการทำ text to column จะเปลี่ยนไปค่ะทำให้แยกข้อมูลไม่ได้
จากครั้งแรก (ข้อมูลอยู่ในRow ที่2-14)

Code: Select all

 Range("L2:L" & Worksheets("Sheet2").UsedRange.Rows.Count).Select
    Selection.TextToColumns Destination:=Range("T2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
ต้องการ: ให้ Range และ destination เริ่มจากบรรทัดสุดท้ายค่ะ(ข้อมูลบรรทัดสุดท้ายอยู่ที่ 15-27)

Code: Select all

Range("L15:L" & Worksheets("Sheet2").UsedRange.Rows.Count).Select
    Selection.TextToColumns Destination:=Range("T15"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
        
* การอัพโหลดแต่ละครั้งจำนวน Row ไม่เท่ากัน

Re: การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Mon Dec 11, 2017 5:42 pm
by snasui
:D ให้เขียนตัวแปรเพื่อเก็บค่าบรรทัดว่างหลังบรรทัดที่มีข้อมูลก่อนที่จะวางข้อมูล เพื่อนำไปกำหนดค่าเริ่มต้นให้กับเซลล์ที่จะทำ Text to columns ครับ

ยกตัวอย่างเช่น กำหนดค่าให้ x คือบรรทัดว่างหลังบรรทัดสุดท้ายที่มีข้อมูล

x = range("a" & rows.count).end(xlup).row + 1

เมื่อวางข้อมูลแล้วค่อยทำ Text to columns โดยนำตัวแปร x มาใช้ เช่น

range("l" & x,range("l" & x).end(xldown)).select
selection.texttocolumns destination...


อักขระ ... แทน Code เดิมครับ

Re: การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Wed Dec 13, 2017 1:26 pm
by aapichaya
เมื่อImport file เพิ่ม ในส่วนของ text to column จะแทนที่destination เดิมค่ะ (Destination:=Range("$T2"))
ต้องการให้ข้อมูลที่ทำ text to column ต่อจาก ข้อมูลที่importชุดแรก

Code: Select all

    Selection.TextToColumns Destination:=Range("$T2"), DataType:=xlDelimited, _
 

Re: การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Thu Dec 14, 2017 6:19 am
by snasui
:D ตัวอย่างการปรับ Code ครับ

นำตัวแปร b ซึ่งเป็นค่าบรรทัดมาใช้ และระบุคอลัมน์ที่จะวางข้อมูลให้กับ Object Cells

Code: Select all

'Other code
Selection.TextToColumns Destination:=Cells(b, "T"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="|", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
'Other code

Re: การแยกคอลัมน์ด้วยเครื่องหมาย (Text to column)

Posted: Thu Dec 14, 2017 1:35 pm
by aapichaya
ขอบคุณมากค่ะ