Page 1 of 1
รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Tue Sep 01, 2020 10:55 am
by sooksun2009
ตอนนี้ติดปัญหาเรื่องมันก๊อป cell ทั้งหมดไปวาง ผมต้องการcopy บรรทัดสุดท้าย จากไฟล์ "file VBAcopy.xlsm" ไปวางต่อบรรทัดล่าง ที่ไฟล์ "Mountly.xlsx" ขอบคุณครับ
Code: Select all
Public Sub SaveOtherFile()
Dim source As Range
Dim Lr As Integer
Dim mySheet As String
Dim wb As Variant
Application.DisplayAlerts = False
Application.ScreenUpdating = False
With Workbooks("File VBA Copy.xlsm").Sheets("Save1")
LL = Application.CountIf(.Range("A3:A100"), "<>")
Set source = .Range("A3", .Range("A" & .Rows.Count).End(xlUp)).Resize(LL, 30)
Set wb = Workbooks.Open("D:\Sooksun\Improvement\visual\Mountly.xlsx", False, False)
source.Copy
With Workbooks("File VBA Copy.xlsm").Sheets("Save1")
mySheet = Format(Now, "mmm")
End With
Windows("Mountly.xlsx").Activate
Worksheets(mySheet).Activate
Lr = Range("b" & Rows.Count).End(xlUp).Row + 1
Range("b" & Lr).PasteSpecial xlPasteValues
With Workbooks("File VBA Copy.xlsm").Sheets("Save1")
Range("b" & Lr).Offset(0, -1).Resize(LL, 1).Value = Format(Now(), "DD-MMM-YYYY hh:mm:ss")
End With
End With
Application.CutCopyMode = False
Workbooks("File VBA Copy.xlsm").Activate
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Workbooks("Mountly.xlsx").Close SaveChanges:=True
End Sub
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Tue Sep 01, 2020 12:30 pm
by puriwutpokin
ในไฟล์ File VBA Copy.xlsm ไม่มี Code มาครับ
แล้ว ความหมาย บรรทัดสุดท้ายคือบรรทัดเดียวสุดท้ายหรือเปล่าครับจากโค้ดที่โพส
เป็น 2 บรรทัด แล้ว คัดลอกไปไว้ที่ File Mountly.xlsx ที่ชีทไหนครับ แล้วมีเงื่อนไข
ในการวางแบบไหนครับ
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Tue Sep 01, 2020 12:45 pm
by sooksun2009
puriwutpokin wrote: Tue Sep 01, 2020 12:30 pm
ในไฟล์ File VBA Copy.xlsm ไม่มี Code มาครับ
แล้ว ความหมาย บรรทัดสุดท้ายคือบรรทัดเดียวสุดท้ายหรือเปล่าครับจากโค้ดที่โพส
เป็น 2 บรรทัด แล้ว คัดลอกไปไว้ที่ File Mountly.xlsx ที่ชีทไหนครับ แล้วมีเงื่อนไข
ในการวางแบบไหนครับ
ถาม;ในไฟล์ File VBA Copy.xlsm ไม่มี Code มาครับ
ตอบ;มีครับ
ถาม;แล้ว ความหมาย บรรทัดสุดท้ายคือบรรทัดเดียวสุดท้ายหรือเปล่าครับจากโค้ดที่โพส
ตอบ;ถูกต้องครับ
ถาม;แล้ว คัดลอกไปไว้ที่ File Mountly.xlsx ที่ชีทไหนครับ แล้วมีเงื่อนไข
ตอบ;ชีทตามเดือนที่แสดงตามคอมพิวเตอร์
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Tue Sep 01, 2020 12:48 pm
by sooksun2009
puriwutpokin wrote: Tue Sep 01, 2020 12:30 pm
ในไฟล์ File VBA Copy.xlsm ไม่มี Code มาครับ
แล้ว ความหมาย บรรทัดสุดท้ายคือบรรทัดเดียวสุดท้ายหรือเปล่าครับจากโค้ดที่โพส
เป็น 2 บรรทัด แล้ว คัดลอกไปไว้ที่ File Mountly.xlsx ที่ชีทไหนครับ แล้วมีเงื่อนไข
ในการวางแบบไหนครับ
แนบไฟล์ใหม่ที่มีCode
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Tue Sep 01, 2020 7:02 pm
by snasui

ตัวอย่างการปรับ Code ครับ
Code: Select all
'Other code
LL = Application.CountIf(.Range("A3:A100"), "<>")
Set source = .Range("A3").Resize(LL, 30)
mySheet = Application.Text(Now, "mmm")
Set wb = Workbooks.Open("D:\Sooksun\Improvement\visual\Mountly.xlsx", False, False)
source.Copy
'Other code
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Wed Sep 02, 2020 9:10 am
by sooksun2009
snasui wrote: Tue Sep 01, 2020 7:02 pm

ตัวอย่างการปรับ Code ครับ
Code: Select all
'Other code
LL = Application.CountIf(.Range("A3:A100"), "<>")
Set source = .Range("A3").Resize(LL, 30)
mySheet = Application.Text(Now, "mmm")
Set wb = Workbooks.Open("D:\Sooksun\Improvement\visual\Mountly.xlsx", False, False)
source.Copy
'Other code
ยังก๊อปที่2บรรทัดอยู่แต่ผมลองแก้แล้วเป็น
Code: Select all
Set source = .Range("A" & Rows.Count).End(xlUp).Resize(LL, 30)
ผมสอบถามเพิ่มครับ ผมต้องการที่จะcopy คือ File VBA Copy.xlsm colum A value ตรงกับ file Mountly ที่comlum B ให้บันทึกแค่ colum N File VBA Copy.xlsm วางที่ file Mountly colum O ขอบคุณครับ ตามไฟล์แนบ
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Wed Sep 02, 2020 3:18 pm
by puriwutpokin
ปรับส่วนนี้ดูครับ
Code: Select all
With Workbooks("File VBA Copy.xlsm").Sheets("Save1")
mySheet = Application.Text(Now, "mmm")
End With
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Wed Sep 02, 2020 3:32 pm
by sooksun2009
puriwutpokin wrote: Wed Sep 02, 2020 3:18 pm
ปรับส่วนนี้ดูครับ
Code: Select all
With Workbooks("File VBA Copy.xlsm").Sheets("Save1")
mySheet = Application.Text(Now, "mmm")
End With
ขอบคุณครับ อันนี้ตอบในส่วนคำถามใหนครับ ผมถามถึงส่วนที่เช็คว่าถ้า colum A file file vba copy.xlsm ข้อมูลตรงกับ colum B file mountly.xlsx ก็ให้วางแค่ colum O
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Wed Sep 02, 2020 8:16 pm
by snasui
sooksun2009 wrote: Wed Sep 02, 2020 9:10 am
ยังก๊อปที่2บรรทัดอยู่แต่ผมลองแก้แล้วเป็น
CODE: SELECT ALL
Set source = .Range("A" & Rows.Count).End(xlUp).Resize(LL, 30)

ทำให้ผ่านไปทีละเรื่่องครับ
ที่ Copy แค่ 2 บรรทัดเพราะค่า LL มีค่าเป็น 2 กรุณาตรวจสอบค่านี้ใหม่ว่าค่าถูกต้องคืออะไร นำค่านั้นมาจากไหน หรือคิดอย่างไร สำหรับ LL เดิมได้มาจากการนับค่าในช่วง A3:A100 ว่าไม่เป็นค่าว่างและผลลัพธ์คือ 2 ครับ
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Thu Sep 03, 2020 7:31 am
by sooksun2009
snasui wrote: Wed Sep 02, 2020 8:16 pm
sooksun2009 wrote: Wed Sep 02, 2020 9:10 am
ยังก๊อปที่2บรรทัดอยู่แต่ผมลองแก้แล้วเป็น
CODE: SELECT ALL
Set source = .Range("A" & Rows.Count).End(xlUp).Resize(LL, 30)

ทำให้ผ่านไปทีละเรื่่องครับ
ที่ Copy แค่ 2 บรรทัดเพราะค่า LL มีค่าเป็น 2 กรุณาตรวจสอบค่านี้ใหม่ว่าค่าถูกต้องคืออะไร นำค่านั้นมาจากไหน หรือคิดอย่างไร สำหรับ LL เดิมได้มาจากการนับค่าในช่วง A3:A100 ว่าไม่เป็นค่าว่างและผลลัพธ์คือ 2 ครับ
ขอคุณครับ แสดงว่าถ้าอย่างนั้นผมไม่ต้องกำหนด LL ก้ได้ใช่ไหมครับ เพราะสิ่งที่ต้องคือต้องการ copy แถวล่างสุดของข้อมูล
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Thu Sep 03, 2020 7:59 am
by snasui

การกำหนดค่า LL ขึ้นอยู่กับว่านำไปใช้ประโยชน์อะไร ใช้ซ้ำหรือไม่ ใช้กี่ตำแหน่งครับ
หากใช้ซ้ำใช้หลายตำแหน่ง ควรกำหนดตัวแปรเสมอ จะได้ไม่ต้องเขียน Statement ยาว ๆ
คำถามสำหรับกระทู้นี้เกี่ยวกับบรรทัดสุดท้าย ปัญหาคือการหาบรรทัดสุดท้าย ดังนั้นตัว LL จะต้องให้ผลลัพธ์เป็นบรรทัดสุดท้ายไม่ใช่การนับว่ามีกี่บรรทัดแล้วใช้ Resize เพื่อขยายข้อมูลให้มีจำนวนบรรทัดเท่ากับค่า LL ซึ่งผิดไปจากความต้องการครับ
การหาบรรทัดสุดท้ายแนวทางหนึ่งคือ ให้ไปยังบรรทัดที่มากที่สุดของ Excel จากนั้นขึ้นมายังบรรทัดที่มีข้อมูล ถ้าหาบรรทัดสุดท้ายในคอลัมน์ A ก็จะเขียนได้เป็น
.range("a" & .rows.count).end(xlup).row
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Wed Sep 09, 2020 11:06 am
by sooksun2009
snasui wrote: Thu Sep 03, 2020 7:59 am

การกำหนดค่า LL ขึ้นอยู่กับว่านำไปใช้ประโยชน์อะไร ใช้ซ้ำหรือไม่ ใช้กี่ตำแหน่งครับ
หากใช้ซ้ำใช้หลายตำแหน่ง ควรกำหนดตัวแปรเสมอ จะได้ไม่ต้องเขียน Statement ยาว ๆ
คำถามสำหรับกระทู้นี้เกี่ยวกับบรรทัดสุดท้าย ปัญหาคือการหาบรรทัดสุดท้าย ดังนั้นตัว LL จะต้องให้ผลลัพธ์เป็นบรรทัดสุดท้ายไม่ใช่การนับว่ามีกี่บรรทัดแล้วใช้ Resize เพื่อขยายข้อมูลให้มีจำนวนบรรทัดเท่ากับค่า LL ซึ่งผิดไปจากความต้องการครับ
การหาบรรทัดสุดท้ายแนวทางหนึ่งคือ ให้ไปยังบรรทัดที่มากที่สุดของ Excel จากนั้นขึ้นมายังบรรทัดที่มีข้อมูล ถ้าหาบรรทัดสุดท้ายในคอลัมน์ A ก็จะเขียนได้เป็น
.range("a" & .rows.count).end(xlup).row
ได้แล้ว ขอบคุณครับ
แต่ต้องการสอบถามเพิ่มครับ
ผมสอบถามเพิ่มครับ ผมต้องการที่จะcopy คือ File VBA Copy.xlsm colum A value ตรงกับ file Mountly ที่comlum B ให้บันทึกแค่ colum N File VBA Copy.xlsm วางที่ file Mountly colum O ขอบคุณครับ ตามไฟล์แนบ
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Wed Sep 09, 2020 12:46 pm
by snasui

กรุณาแนบไฟล์ล่าสุดมาด้วยครับ
ช่วยชี้ให้เห็นว่าต้องการคำตอบปลายทางเป็นแบบไหน อย่างไร ใส่สี ตีเส้นมาได้ตามสะดวกครับ
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Wed Sep 09, 2020 3:25 pm
by sooksun2009
snasui wrote: Wed Sep 09, 2020 12:46 pm

กรุณาแนบไฟล์ล่าสุดมาด้วยครับ
ช่วยชี้ให้เห็นว่าต้องการคำตอบปลายทางเป็นแบบไหน อย่างไร ใส่สี ตีเส้นมาได้ตามสะดวกครับ
ขอบคุณครับ
Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์
Posted: Wed Sep 09, 2020 5:57 pm
by snasui
sooksun2009 wrote: Wed Sep 09, 2020 11:06 am
ผมต้องการที่จะcopy คือ File VBA Copy.xlsm colum A value ตรงกับ file Mountly ที่comlum B ให้บันทึกแค่ colum N File VBA Copy.xlsm วางที่ file Mountly colum O ขอบคุณครับ ตามไฟล์แนบ

เขียน Code ที่จะทำเช่นนั้นไว้แล้วหรือไม่ครับ
ถ้าเขียนไว้แล้วกรุณาแจ้งมาด้วยว่าติดขัดบรรทัดไหน อย่างไร จะได้ตอบต่อไปจากนั้นครับ