: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

บันทึกข้อมูลข้าม Sheet ด้วย VBA

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
babyminds
Member
Member
Posts: 72
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

บันทึกข้อมูลข้าม Sheet ด้วย VBA

#1

Post by babyminds »

อยากบันทึกข้อมูลด้วย VBA จากตัวอย่างคือ Sheet FX Copy J1:J86 ไปางที่ Sheet Act Year 23 ช่อง B4 แบบ Value และ Copy K1:K80 ที่ Sheet FX ไปวางที่ Sheet Ticket ช่อง B4 แบบ Value อยากได้ Vba ที่สามารถรันแล้ว นำข้อมูลไปวางทั้ง2ชีท โดยรันครั้งต่อไปก้อไห้เรียงไปตามวันที่ เช่น วันที่ 1/1/23 พอกดรันก้อไห้เอาข้อมูลไปวางตรังกับวันที่ ในชีท Act Year 23 และ ชีท Ticket

ไฟล์ตัวอย่างครับ
https://drive.google.com/file/d/1K7SDQw ... sp=sharing
User avatar
snasui
Site Admin
Site Admin
Posts: 30752
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#2

Post by snasui »

:D กรุณาแนบไฟล์มาที่ฟอรัมนี้โดยตรง อ่านกฎการใช้บอร์ดทุกข้อด้านบนประกอบครับ :roll:
babyminds
Member
Member
Posts: 72
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#3

Post by babyminds »

File มันแนบไม่ได้ครับ เกินขนาด
User avatar
snasui
Site Admin
Site Admin
Posts: 30752
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#4

Post by snasui »

:D ตัดมาเฉพาะที่เป็นปัญหาสร้างเป็นไฟล์ใหม่มีเพียงข้อมูลตัวอย่างที่สามารถแทนข้อมูลจริงได้ครับ

ปกติไม่ควรแนบไฟล์จริงมาทุกกรณียกเว้นสามารถเปิดเผยได้ครับ
babyminds
Member
Member
Posts: 72
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#5

Post by babyminds »

ตัวอย่าง.xlsb
นี่ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30752
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#6

Post by snasui »

:D ยังไม่มี Code ในไฟล์นั้น กรุณาเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อ อ่านกฎการใช้บอร์ดข้อ 5 ด้านบนประกอบและต้องทำมาตามน้้นทุกครั้งไปครับ :roll:
babyminds
Member
Member
Posts: 72
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#7

Post by babyminds »

ตัวอย่าง.xlsb
นี่ครับ อยากให้มันบันทึกตามวันที่ไปเรื่อยๆครับ

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("J1:J86").Select
    Selection.Copy
    Sheets("ACT YEAR 23").Select
    Range("B4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("FX").Select
    Range("K1:K80").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ticket").Select
    Range("B4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("FX").Select
    Range("G5").Select
    Application.CutCopyMode = False
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30752
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#8

Post by snasui »

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

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'

'
'    Range("J1:J86").Select
'    Selection.Copy
'    Sheets("ACT YEAR 23").Select
'    Range("B4").Select
'    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'        :=False, Transpose:=False
'    Sheets("FX").Select
'    Range("K1:K80").Select
'    Application.CutCopyMode = False
'    Selection.Copy
'    Sheets("Ticket").Select
'    Range("B4").Select
'    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'        :=False, Transpose:=False
'    Sheets("FX").Select
'    Range("G5").Select
'    Application.CutCopyMode = False
    Dim c As Integer
    Dim s As Range
    With Worksheets("FX")
        Set s = .Range("j1", .Range("j" & .Rows.Count).End(xlUp))
    End With
    With Worksheets("ACT Year 23")
        If Application.CountIfs(.Range("3:3"), Worksheets("FX").Range("a3")) Then
            c = Application.Match(Worksheets("FX").Range("a3"), .Range("3:3"), 0)
            .Cells(4, c).Resize(s.Rows.Count, 1).Value = s.Value
            Worksheets("Ticket").Cells(4, c).Resize(s.Rows.Count, 1).Value = s.Offset(0, 1).Value
        Else
            MsgBox "Not found date.", vbExclamation
            Exit Sub
        End If
    End With
End Sub
babyminds
Member
Member
Posts: 72
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

บันทึกยอดขายด้วย VBA

#9

Post by babyminds »

จากตัวอย่าง จะบันทึก ยอดขายจาก Colum J ไปวางที่ชีท 1 Colum K ไปวางที่ชีท 2
ตามวันที่ ช่อง A1 ต้องการเพิ่มให้ Colum L ไปวางที่ชีท 3 ต้องปรับแก้สูตรยังไงครับ
Capture.JPG

Code: Select all

Sub Macro2()
'
' Macro2 Macro
'

'
'    Range("J1:J9").Select
'    Selection.Copy
'    Sheets("1").Select
'    Range("B4").Select
'    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'        :=False, Transpose:=False
'    Sheets("FX").Select
'    Range("K1:K9").Select
'    Application.CutCopyMode = False
'    Selection.Copy
'    Sheets("2").Select
'    Range("B4").Select
'    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'        :=False, Transpose:=False
'    Sheets("FX").Select
'    Range("G5").Select
'    Application.CutCopyMode = False
    Dim c As Integer
    Dim s As Range
    With Worksheets("FX")
        Set s = .Range("j1", .Range("j" & .Rows.Count).End(xlUp))
    End With
    With Worksheets("1")
        If Application.CountIfs(.Range("3:3"), Worksheets("FX").Range("a1")) Then
            c = Application.Match(Worksheets("FX").Range("a1"), .Range("3:3"), 0)
            .Cells(4, c).Resize(s.Rows.Count, 1).Value = s.Value
            Worksheets("2").Cells(4, c).Resize(s.Rows.Count, 1).Value = s.Offset(0, 1).Value
        Else
            MsgBox "Not found date.", vbExclamation
            Exit Sub
        End If
    End With
End Sub

ตัวอย่าง1.xlsb
You do not have the required permissions to view the files attached to this post.
babyminds
Member
Member
Posts: 72
Joined: Fri Nov 04, 2022 3:28 pm
Excel Ver: 365

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#10

Post by babyminds »

snasui wrote: Sat Jan 14, 2023 1:50 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'

'
'    Range("J1:J86").Select
'    Selection.Copy
'    Sheets("ACT YEAR 23").Select
'    Range("B4").Select
'    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'        :=False, Transpose:=False
'    Sheets("FX").Select
'    Range("K1:K80").Select
'    Application.CutCopyMode = False
'    Selection.Copy
'    Sheets("Ticket").Select
'    Range("B4").Select
'    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'        :=False, Transpose:=False
'    Sheets("FX").Select
'    Range("G5").Select
'    Application.CutCopyMode = False
    Dim c As Integer
    Dim s As Range
    With Worksheets("FX")
        Set s = .Range("j1", .Range("j" & .Rows.Count).End(xlUp))
    End With
    With Worksheets("ACT Year 23")
        If Application.CountIfs(.Range("3:3"), Worksheets("FX").Range("a3")) Then
            c = Application.Match(Worksheets("FX").Range("a3"), .Range("3:3"), 0)
            .Cells(4, c).Resize(s.Rows.Count, 1).Value = s.Value
            Worksheets("Ticket").Cells(4, c).Resize(s.Rows.Count, 1).Value = s.Offset(0, 1).Value
        Else
            MsgBox "Not found date.", vbExclamation
            Exit Sub
        End If
    End With
End Sub
สอบถามครับ ถ้าต้องการเพิ่มอีกชีทนึง โดยเข้าข้อมูลจากชีท FX P1:P50 ไปวางที่ชีท P50 ช่อง B4 ต้องปรับแก้ตรงไหนครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30752
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: บันทึกข้อมูลข้าม Sheet ด้วย VBA

#11

Post by snasui »

:D ลองปรับมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน :roll: ปรับได้เท่าไรก็เท่านั้น ติดตรงไหนค่อยถามกันต่อครับ
Post Reply