Page 1 of 1

บันทึกข้อมูลข้ามชีท โดยชื่อชีทเปลี่ยนแปลงตามวันที่ปัจจุบัน

Posted: Sat Feb 23, 2019 10:20 pm
by sosadboy
ผมสร้างไฟล์เพื่อใช้เป็นฟอร์มบันทึกข้อมูล และบันทึกข้อมูลไว้ในอีกชีท คือ ชีท Database ปัญหาคือ ผมต้องการเปลี่ยนการบันทึกข้อมูลใหม่ จากเดิมบันทึกลงชีท Database ให้ไปบันทึกในชีทที่สร้างขึ้นมาใหม่ โดยเมื่อเปิดไฟล์ได้เขียนโค๊ดให้สร้างชีทใหม่ และตั้งชื่อชีทตามวันที่ปัจจุบัน ซึ่งชื่อชีทจะเปลี่ยนไปตามวันที่ปัจจุบัน ในส่วนนี้ผมไม่สามารถเขียนโค๊ดให้ไปบันทึกในชีทใหม่ที่ตั้งชื่ออ้างอิงกับวันที่ปัจจุบันได้ เพราะโค๊ดเดิมนั้นเจาะจงให้บันทึกลงใน Database จึงขอความกรุณาทุกท่านช่วยชี้แนะหรือช่วยปรับโค๊ดในส่วนนี้ให้ด้วยครับ

Code: Select all

Sub บันทึกข้อมูลอวนปัญหา()
Dim r1 As Range
Dim lastRow As Integer
With Worksheets("ฟอร์มบันทึกรายการอวนปัญหา")
    Set r1 = .Range("B4:L4")
End With
With Worksheets("Database")
    lastRow = .Range("B" & .Rows.Count).End(xlUp).Row + 1
    r1.Copy
    .Range("B" & lastRow).PasteSpecial xlPasteValues
  End With
  Application.CutCopyMode = False
End Sub
โค๊ดนี้ใช้บันทึกข้อมูลลงชีท Database ครับ ส่วนตัวพยายามหาตัวอย่างในเว็ปแล้วแต่ไม่มีที่พอจะมาดัดแปลงใช้กับปัญหาที่เจอเลยครับครับ

Re: บันทึกข้อมูลข้ามชีท โดยชื่อชีทเปลี่ยนแปลงตามวันที่ปัจจุบัน

Posted: Sat Feb 23, 2019 11:01 pm
by puriwutpokin
ปรับเปลี่ยนในส่วนนี้ดูครับ ถ้าชื่อชีทเป็น พ.ศ.ให้เปลี่ยนเป็นตามโค้ดด้านล่าง แต่ถ้าเป็น ค.ศ. ก็แก้ชื่อชีทก่อนหรือแอดใหม่ให้เป็น ค.ศ. ก็รันได้ปกติครับ

Code: Select all

TodayDate=Format(Day(Date) & "/" & Month(Date) & "/" & (Year(Date) + 543), "d-mmm-yyyy")

Re: บันทึกข้อมูลข้ามชีท โดยชื่อชีทเปลี่ยนแปลงตามวันที่ปัจจุบัน

Posted: Sat Feb 23, 2019 11:34 pm
by sosadboy
ขอบคุณครับสำหรับคำแนะนำครับ ผมอาจจะอธิบายไม่ครบ แต่ที่ต้องการให้ช่วยแนะนำจริงๆ คือส่วนของโค๊ด Sub บันทึกข้อมูลอวนปัญหา() โค๊ดช่วง

Code: Select all

With Worksheets("Database")
คือตอนนี้เมื่อใส่ข้อมูลลงในฟอร์มในชีทแรก แล้วกดปุ่มบันทึกข้อมูล มันจะบันทึกลงชีทที่ 2 คือชีท Database ความต้องการคืออยากให้ชื่อชีทตรงนี้ไม่ fix ครับ ให้เปลี่ยนตามชื่อชีทที่ทำการสร้างขึ้นใหม่ตอนเปิดไฟล์คือชีทที่ 3 ที่มีชื่อชีทเป็น วันที่ปัจจุบัน ครับ พอพรุ่งนี้เเปิดไฟล์ใหม่เพื่อบันทึกข้อมูล มันก็จะสร้างชีทใหม่ชื่อเป็นวันที่ของวันพรุ่งนี้ พอกดบันทึกก็ให้บันทึกข้อมูลลงในชีทของวันพรุ่งนี้ได้เลย ประมาณนี้ครับ

Re: บันทึกข้อมูลข้ามชีท โดยชื่อชีทเปลี่ยนแปลงตามวันที่ปัจจุบัน

Posted: Sat Feb 23, 2019 11:42 pm
by puriwutpokin
ผลรันตามนี้แล้วครับมันไปตามชื่อชีทนะครับ

Code: Select all

Sub บันทึกข้อมูลอวนปัญหา()
Dim r1 As Range
Dim lastRow As Integer
TodayDate = Worksheet
TodayDate = Format(Date, "dd-mmm-yyyy")
With Worksheets("ฟอร์มบันทึกรายการอวนปัญหา")
    Set r1 = .Range("B4:L4")
End With
With Worksheets(TodayDate)
    lastRow = .Range("B" & .Rows.Count).End(xlUp).Row + 1
    r1.Copy
    .Range("B" & lastRow).PasteSpecial xlPasteValues
  End With
  Application.CutCopyMode = False
End Sub

Re: บันทึกข้อมูลข้ามชีท โดยชื่อชีทเปลี่ยนแปลงตามวันที่ปัจจุบัน

Posted: Sun Feb 24, 2019 10:51 am
by sosadboy
ได้แล้วครับ ขอบคุณมากครับ