: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 Copy ข้อมูลที่เป็น text มาแล้วมี 0 นำหน้ามาที่ sheet ปลายทางแล้ว 0 หายครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
netusernoname
Member
Member
Posts: 24
Joined: Wed Mar 23, 2011 2:41 am

สอบถามเรื่องการใช้ VBA Copy ข้อมูลที่เป็น text มาแล้วมี 0 นำหน้ามาที่ sheet ปลายทางแล้ว 0 หายครับ

#1

Post by netusernoname »

คือใช้ VBA ตามด้านล่างในการดึงข้อมูลจากหลายๆ ไฟล์มารวมเป็นไฟล์เดียวกันนะครับ ได้มาจาก Link
https://msdn.microsoft.com/en-us/librar ... e.14).aspx


Dim SummarySheet As Worksheet
Dim FolderPath As String
Dim NRow As Long
Dim FileName As String
Dim WorkBk As Workbook
Dim SourceRange As Range
Dim DestRange As Range

Set SummarySheet = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
FolderPath = "D:\Users\Administrator\Desktop\Temp\TTT\"
NRow = 1
FileName = Dir(FolderPath & "*.xl*")
Do While FileName <> ""
Set WorkBk = Workbooks.Open(FolderPath & FileName)
SummarySheet.Range("A" & NRow).Value = FileName

After:=WorkBk.Worksheets(1).Cells.Range("A1"), _
SearchDirection:=xlPrevious, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows).Row
Set SourceRange = WorkBk.Worksheets(1).Range("A1:Z" & LastRow)
Set DestRange = SummarySheet.Range("B" & NRow)
Set DestRange = DestRange.Resize(SourceRange.Rows.Count, _
SourceRange.Columns.Count)
DestRange.Value = SourceRange.Value
NRow = NRow + DestRange.Rows.Count
WorkBk.Close savechanges:=False
FileName = Dir()
Loop
SummarySheet.Columns.AutoFit
End Sub

ปัญหาคือพอมีการดึงข้อมูลในส่วนของที่เป็น Text ซึ่งถูกเก็บไว้แบบมี 0 นำหน้า แล้ว 0 มันหายครับ
พอจะมีวิธีแก้ไข code ตรงส่วนไหนได้บ้างครับ
http://www.uppic.org/image-B2C9_5565875A.jpg

ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามเรื่องการใช้ VBA Copy ข้อมูลที่เป็น text มาแล้วมี 0 นำหน้ามาที่ sheet ปลายทางแล้ว 0 หายครับ

#2

Post by snasui »

:D อ่านกฎทุกข้อด้านบนใหม่อีกรอบครับ

กรุณากลับไปรายงานผลในกระทู้เหล่านี้ตามกฎการใช้บอร์ดข้อ 6 ด้านบน
viewtopic.php?f=3&t=6439&p=41243#p41243
viewtopic.php?f=3&t=5082&p=32937#p32937
viewtopic.php?f=3&t=5108&p=33071#p33071
viewtopic.php?f=3&t=5418&p=34992#p34992
viewtopic.php?f=3&t=5787&p=37284#p37284
viewtopic.php?f=3&t=6263&p=40215#p40215

การโพสต์ Code ควรโพสต์ให้แสดงเป็น Code โดยดูตัวอย่างจากกระทู้นี้
viewtopic.php?f=6&t=1187

การโพสต์ไฟล์แนบ ให้โพสต์มาที่ฟอรัมนี้ ตามกฎข้อ 4 ด้านบนครับ
netusernoname
Member
Member
Posts: 24
Joined: Wed Mar 23, 2011 2:41 am

Re: สอบถามเรื่องการใช้ VBA Copy ข้อมูลที่เป็น text มาแล้วมี 0 นำหน้ามาที่ sheet ปลายทางแล้ว 0 หายครับ

#3

Post by netusernoname »

snasui wrote::D อ่านกฎทุกข้อด้านบนใหม่อีกรอบครับ

กรุณากลับไปรายงานผลในกระทู้เหล่านี้ตามกฎการใช้บอร์ดข้อ 6 ด้านบน
viewtopic.php?f=3&t=6439&p=41243#p41243
viewtopic.php?f=3&t=5082&p=32937#p32937
viewtopic.php?f=3&t=5108&p=33071#p33071
viewtopic.php?f=3&t=5418&p=34992#p34992
viewtopic.php?f=3&t=5787&p=37284#p37284
viewtopic.php?f=3&t=6263&p=40215#p40215

การโพสต์ Code ควรโพสต์ให้แสดงเป็น Code โดยดูตัวอย่างจากกระทู้นี้
viewtopic.php?f=6&t=1187

การโพสต์ไฟล์แนบ ให้โพสต์มาที่ฟอรัมนี้ ตามกฎข้อ 4 ด้านบนครับ
ขอโทษทีครับ /\
ตอนนี้กำลังคิดว่าจะใช้ marcro ใส่คำค่า "A" นำหน้าข้อความไปก่อนแล้วหลังจากนั้นค่อยมาใช้สูตร substitute เอา A ออกแล้วค่อยเลือก paste แบบ value อีกครั้ง ไม่ทราบว่าจะมีวิธีอื่นที่ดีกว่านี้ไหมครับ

ปล.ผมพยายามจแก้ ที่โพสไปให้ถูกต้องตามกฏของกระทู้ มันแก้ไม่ได้แล้วครับ :roll:
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามเรื่องการใช้ VBA Copy ข้อมูลที่เป็น text มาแล้วมี 0 นำหน้ามาที่ sheet ปลายทางแล้ว 0 หายครับ

#4

Post by snasui »

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

Code: Select all

'Other code
Set DestRange = DestRange.Resize(SourceRange.Rows.Count, _
SourceRange.Columns.Count)
DestRange.NumberFormat = "@" 'Add this line
DestRange.Value = SourceRange.Value
'Other code
Post Reply