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 ที่ชีทไหนครับ แล้วมีเงื่อนไข
ตอบ;ชีทตามเดือนที่แสดงตามคอมพิวเตอร์

Code: Select all

mySheet = Format(Now, "mmm")

Code: Select all

Worksheets(mySheet).Activate

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
:D ตัวอย่างการปรับ 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 :D ตัวอย่างการปรับ 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)
:D ทำให้ผ่านไปทีละเรื่่องครับ

ที่ 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)
:D ทำให้ผ่านไปทีละเรื่่องครับ

ที่ Copy แค่ 2 บรรทัดเพราะค่า LL มีค่าเป็น 2 กรุณาตรวจสอบค่านี้ใหม่ว่าค่าถูกต้องคืออะไร นำค่านั้นมาจากไหน หรือคิดอย่างไร สำหรับ LL เดิมได้มาจากการนับค่าในช่วง A3:A100 ว่าไม่เป็นค่าว่างและผลลัพธ์คือ 2 ครับ
ขอคุณครับ แสดงว่าถ้าอย่างนั้นผมไม่ต้องกำหนด LL ก้ได้ใช่ไหมครับ เพราะสิ่งที่ต้องคือต้องการ copy แถวล่างสุดของข้อมูล

Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์

Posted: Thu Sep 03, 2020 7:59 am
by snasui
:D การกำหนดค่า 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 :D การกำหนดค่า 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
:D กรุณาแนบไฟล์ล่าสุดมาด้วยครับ

ช่วยชี้ให้เห็นว่าต้องการคำตอบปลายทางเป็นแบบไหน อย่างไร ใส่สี ตีเส้นมาได้ตามสะดวกครับ

Re: รบท่านอาจารย์เรื่องการ copy บรรทัดสุดท้าย ไปวางต่อจากบรรทัดสุดท้าย อีกไฟล์

Posted: Wed Sep 09, 2020 3:25 pm
by sooksun2009
snasui wrote: Wed Sep 09, 2020 12:46 pm :D กรุณาแนบไฟล์ล่าสุดมาด้วยครับ

ช่วยชี้ให้เห็นว่าต้องการคำตอบปลายทางเป็นแบบไหน อย่างไร ใส่สี ตีเส้นมาได้ตามสะดวกครับ
ขอบคุณครับ

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 ขอบคุณครับ ตามไฟล์แนบ
:D เขียน Code ที่จะทำเช่นนั้นไว้แล้วหรือไม่ครับ

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