: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 การ copy ข้อมูล

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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: ขอสูตร vba ใน excel การ copy ข้อมูล

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#15

by lumidoll » Tue Oct 30, 2012 12:17 pm

เก่งมาก ๆ เลยค่ะ เคยเอาโจทย์นี้ไปถามวิทยากรที่มาสอน Excel ให้กับบริษัทฯ
เค้าให้คำตอบไม่ได้ ดิฉันเป็นมือใหม่หัดเขียน ขอฝากเนื้อฝากตัวด้วยค่ะ

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#14

by snasui » Tue Oct 30, 2012 12:03 pm

:D รับทราบครับ ขอชื่นชมในความพยายามครับ ผมจบบัญชีทั้งปริญญาตรีและปริญญาโท ไม่ได้จบคอมพิวเตอร์และไม่เคยเรียนการเขียนโปรแกรมกับท่านใดหรือกับสถาบันใดเช่นกันครับ :P

Code ที่ถามควรเป็น Code ที่เขียนมาเองแล้วติดปัญหา

#13

by lumidoll » Tue Oct 30, 2012 11:40 am

Code ที่ถามเป็น Code ที่เขียนเองแล้วติดปัญหาค่ะ แต่บังเอิญไม่ได้เรียนทางด้านนี้โดยตรง
จบบัญชีมาค่ะ แต่มาศึกษาเอง เปิดหนังสือบ้างอ่านใน Internet บ้างค่ะ
Code ที่ให้ตัวอย่างไป คืออยากให้ Code ปรับข้อมูลที่ฐานข้อมูลก่อนค่ะ ค่อยนำไปที่
Sheet Template (คือ Copy วางที่ฐานข้อมูลเลย) แต่ที่อาจารย์ (ขออนุญาตเรียกแบบนี้นะคะ) เขียนมาผลขอมันไป
ปรากฎที่ Sheet Template เลย ซึ่งดิฉันเองก็สับสนว่าจะเขียนให้ผลออกมาที่ไหนถึงจะดีที่สุด
เลยเลือกจัดการฐานข้อมูลก่อน จึงจะนำไปที่ Template แต่ของอาจารย์ง่ายกว่าเยอะเลย

ขอบคุณอีกครั้งค่ะ และอาจจะมีถามมารบกวนอีกนะคะ

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#12

by snasui » Tue Oct 30, 2012 11:27 am

:D
lumidoll wrote:บางอย่างอาจไม่ตรงตามคำขอเท่าไหร่
หากเขียนมาเองก็ควรทราบครับว่า Code ไหนต้องการจะทำอะไร

Code ที่ถามควรเป็น Code ที่เขียนมาเองแล้วติดปัญหาครับ เพื่อเป็นการให้เกียรติและปฏิบัติตามกฎของฟอรัม พึงระวังในการนำ Code ที่ไม่เกี่ยวกับที่เป็นปัญหามาถามครับ

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#11

by lumidoll » Tue Oct 30, 2012 11:06 am

ได้แล้วค่ะ ขอบพระคุณมากเลย และต้องขอโทษด้วยนะคะ
ยังใหม่อยู่ค่ะ กะลังเรียนรู้ บางอย่างอาจไม่ตรงตามคำขอเท่าไหร่

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#10

by lumidoll » Tue Oct 30, 2012 10:32 am

ขอบคุณมากเลยค่ะ จะลองดูนะคะ

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#9

by snasui » Tue Oct 30, 2012 10:01 am

:lol: Code ทียกมานั้นไม่ใช่ครับ ที่ถูกคือตามด้านล่างและผมได้ปรับให้แล้ว ลองทดสอบดูครับ

Code: Select all

Private Sub CmdStart_Click()
    
    Sheet3.Cells(1, 1) = "Doc Date"
    Sheet3.Cells(1, 2) = "Payee Name"
    Sheet3.Cells(1, 3) = "Register No"
    Sheet3.Cells(1, 4) = "Product"
    Sheet3.Cells(1, 5) = "Amount"
       
    
    Sheet3.Range("A1", "E1").HorizontalAlignment = xlCenter
    Sheet3.Range("A1", "E1").Interior.Color = RGB(0, 160, 198)
    Sheet3.Range("A1", "E1").Font.Bold = True
    
    r = 2
    
    For i = 1 To 20000 Step 1
        If Trim(Sheet2.Cells(i, 1)) <> "" And Trim(Sheet2.Cells(i, 7)) <> "" And Trim(Sheet2.Cells(i, 19)) <> "" And Len(Trim(Sheet2.Cells(i, 1))) = 16 And Trim(Sheet2.Cells(i, 1)) <> "Transaction Date" Then
            Sheet3.Cells(r, 1) = Mid(Sheet2.Cells(i, 1), 1, 10)
            Sheet3.Cells(r, 2) = Trim(Sheet2.Cells(i, 7))
            Sheet3.Cells(r, 3) = Trim(Sheet2.Cells(i, 15))
            If Sheet3.Cells(r, 3) = "" Then
                Sheet3.Cells(r, 3) = Sheet3.Cells(r, 3).End(xlUp)
            End If
            Sheet3.Cells(r, 4) = Trim(Sheet2.Cells(i, 19))
            Sheet3.Cells(r, 5) = Trim(Sheet2.Cells(i, 22))
            
                  
            r = r + 1
            
        End If
      Next
    End Sub
สำหรับการ Post Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและการ Copy ไปใช้ดูตัวอย่างที่นี่ครับ http://www.snasui.com/viewtopic.php?f=3&t=1187

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#8

by lumidoll » Tue Oct 30, 2012 8:12 am

Private Sub CmdData_Click()
If r = 0 Then
r = 20000
End If


Sheet2.Range("A1", "BR" & r).ClearFormats

Dim n As Long

n = Sheet2.Range("O1:O2").Cells.Insert

r = 24

For i = 1 To 20000

If Trim(Sheet2.Cells(i, 1)) <> "" And Trim(Sheet2.Cells(i, 7)) <> "" And Trim(Sheet2.Cells(i, 19)) <> "" And Len(Trim(Sheet2.Cells(i, 15))) = 6 Then

Sheet2.Cells(r, 15) = Sheet2.Cells((r - 1), 15)

r = r + 1

End If
Next
End Sub

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#7

by snasui » Mon Oct 29, 2012 9:02 pm

:D Code ที่เขียนไว้แล้วชื่ออะไร อยู่ที่ Module ไหนครับ

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#6

by lumidoll » Mon Oct 29, 2012 5:33 pm

ส่ง File ที่เป็น .xlsm มาให้แล้วค่ะ Sheet Control มีการเขียน Code มาให้แล้วค่ะ
Sheet Data เป็นข้่อมูลที่ Load มาค่ะ
ส่วน sheet Template เป็นข้อมูลที่ได้หลังการ run vba แล้ว
ช่องสีเหลืองคือต้องการให้ข้อมูลด้านบนถูก copy มาวาง ตามบรรทัดที่ว่าง
แล้วเมื่อเจอข้อมูลใหม่ก็ให้ Copy ข้อมูลนั้นต่อลงมา ไปเรื่อย ๆ
แต่ตอนนี้ พอเขียน vba แล้่วข้อมูลดึงมาแค่บรรทัดเดียวเท่านั้น
รบกวนด้วยนะคะ
Attachments
Test.xlsm
(53.43 KiB) Downloaded 130 times

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#5

by snasui » Mon Oct 29, 2012 10:16 am

:D ไฟล์ตัวอย่างไม่ควรใหญ่ถึงขนาดนั้นครับ อ่านกฎข้อ 4 ด้านบนประกอบครับ :roll:

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#4

by lumidoll » Mon Oct 29, 2012 9:42 am

File ใหญ่มากค่ะ เกิน 300 kb ทำอย่างไรดีคะ zip ไปได้หรือเปล่า

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#3

by nattasiray » Thu Oct 25, 2012 11:51 pm

ทำการบันทึกแมโครตามขั้นตอนนี้่

1 ไปที่ Status bar มุมซ้ายล่างของหน้าต่างไมโครซอฟต์เอ็กเซล
2 คลิกปุ่มบันทึกแมโคร
3 ตั้งชื่อ FillDataIntoBlankCell
4 คลิก OK
5 คลิกเซลล์ N3
6 กดแป้น Ctrl+* เพื่อเลือกตารางข้อมูล
7 กดแป้น Ctrl+G เพื่อเรียกกรอบโต้ตอบ Go to
8 คลิกปุ่ม Special...
9 คลิกที่ Blank
10 คลิกปุ่ม OK
11 พิมพ์เครื่องหมาย =
12 กดแป้นเลื่อนเคอร์เซอร์ขึ้น 1 ครั้ง
13 กดแป้น Ctrl+Enter
14 กดแป้น Ctrl+* เพื่อเลือกตารางข้อมูล
15 กดแป้น Ctrl+C
16 คลิกขวาที่เซลล์ N3
17 คลิกเลือก Paste Special
18 คลิกเลือก Values
19 กดแป้น ESC
20 คลิกปุ่ม Stop ที่ Status bar มุมซ้ายล่างของหน้าต่างไมโครซอฟต์เอ็กเซล

การดูโค้ด
กดแป้น Alt+F8
คลิกชื่อแมโคร FillDataIntoBlankCell
คลิกปุ่ม Edit
ตัดต่อโค้ดเอาเองครับ เพราะโค้ดที่ได้จากการบันทึกแมโครยังมีโค้ดที่ไม่จำเป็นต่อการใช้งานอยู่

ดูตัวอย่างข้อมูลที่คุณให้ ก็จะพบว่ามีรหัส A... ปะปนมาด้วย เมื่อใช้วิธีการข้างบนจะทำให้ได้ของที่ไม่จำเป็นมา ให้ทำการบันทึกแมโครกรองข้อมูลอักษรที่ขึ้นต้นด้วยตัว A แล้วลบบรรทัดดังกล่าวทิ้ง

Re: ขอสูตร vba ใน excel การ copy ข้อมูล

#2

by snasui » Thu Oct 25, 2012 4:55 pm

:D ลองเขียนมาเองก่อนครับ เขียนไม่เป็นก็ลองบันทึก Macro มาดูก่อนติดตรงไหนค่อยถามกันตามกฎข้อ 5 ด้านบนครับ สำหรับไฟล์แนบควรเป็น .xlsm เนื่องจากต้องการใช้ Macro จึงควรแนบไฟล์ที่สามารถแนบ Macro ได้ครับ

ขอสูตร vba ใน excel การ copy ข้อมูล

#1

by lumidoll » Thu Oct 25, 2012 4:47 pm

อยากได้สูตร vba ใน excel ในการ Copy ข้อมูลค่ะ จากตัวอย่างที่ส่งมา ต้องการให้ Column N copy รหัสลงมาทุกบรรทัดของข้อความ และเมื่อเริ่ม ข้อความใหม่ให้ copy รหัสใหม่ของข้อความนั้นลงมา
เช่น XL4560 ต้อง copy ลงมาอีก 3 บรรทัด
AK4505 ต้อง copy ลงมาอีก 3 บรรทัด
SK3900 ต้อง copy ลงมาอีก 5 บรรทัด
ข้่อมูลมีจำนวนมาก ต้องการนำไปจัดเรียงใหม่ในอีก Sheet ค่ะ Code อื่นเขียนได้แล้วค่ะ แต่ติดอยู่แค่อันนี้อันเดียว รบกวนด้วยนะคะ
Attachments
Book2.xlsx
(9.96 KiB) Downloaded 74 times

Top