: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

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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: 78
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: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#2

Post by snasui »

:D กรุณาแนบไฟล์มาที่ฟอรัมนี้โดยตรง อ่านกฎการใช้บอร์ดทุกข้อด้านบนประกอบครับ :roll:
babyminds
Member
Member
Posts: 78
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: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#4

Post by snasui »

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

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

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

#5

Post by babyminds »

ตัวอย่าง.xlsb
(25.72 KiB) Downloaded 16 times
นี่ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#6

Post by snasui »

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

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

#7

Post by babyminds »

ตัวอย่าง.xlsb
(32.49 KiB) Downloaded 19 times
นี่ครับ อยากให้มันบันทึกตามวันที่ไปเรื่อยๆครับ

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
User avatar
snasui
Site Admin
Site Admin
Posts: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
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: 78
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
Capture.JPG (48.12 KiB) Viewed 157 times

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
(22.85 KiB) Downloaded 6 times
babyminds
Member
Member
Posts: 78
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: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#11

Post by snasui »

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