snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sooksun2009
Member
Posts: 172 Joined: Fri Sep 18, 2015 3:21 pm
Excel Ver: 2013,2016
#1
Post
by sooksun2009 » Tue Sep 01, 2020 10:55 am
ตอนนี้ติดปัญหาเรื่องมันก๊อป 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
You do not have the required permissions to view the files attached to this post.
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#2
Post
by puriwutpokin » Tue Sep 01, 2020 12:30 pm
ในไฟล์ File VBA Copy.xlsm ไม่มี Code มาครับ
แล้ว ความหมาย บรรทัดสุดท้ายคือบรรทัดเดียวสุดท้ายหรือเปล่าครับจากโค้ดที่โพส
เป็น 2 บรรทัด แล้ว คัดลอกไปไว้ที่ File Mountly.xlsx ที่ชีทไหนครับ แล้วมีเงื่อนไข
ในการวางแบบไหนครับ
sooksun2009
Member
Posts: 172 Joined: Fri Sep 18, 2015 3:21 pm
Excel Ver: 2013,2016
#3
Post
by sooksun2009 » Tue Sep 01, 2020 12:45 pm
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 ที่ชีทไหนครับ แล้วมีเงื่อนไข
ตอบ;ชีทตามเดือนที่แสดงตามคอมพิวเตอร์
sooksun2009
Member
Posts: 172 Joined: Fri Sep 18, 2015 3:21 pm
Excel Ver: 2013,2016
#4
Post
by sooksun2009 » Tue Sep 01, 2020 12:48 pm
puriwutpokin wrote: Tue Sep 01, 2020 12:30 pm
ในไฟล์ File VBA Copy.xlsm ไม่มี Code มาครับ
แล้ว ความหมาย บรรทัดสุดท้ายคือบรรทัดเดียวสุดท้ายหรือเปล่าครับจากโค้ดที่โพส
เป็น 2 บรรทัด แล้ว คัดลอกไปไว้ที่ File Mountly.xlsx ที่ชีทไหนครับ แล้วมีเงื่อนไข
ในการวางแบบไหนครับ
แนบไฟล์ใหม่ที่มีCode
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » 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
sooksun2009
Member
Posts: 172 Joined: Fri Sep 18, 2015 3:21 pm
Excel Ver: 2013,2016
#6
Post
by sooksun2009 » Wed Sep 02, 2020 9:10 am
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 ขอบคุณครับ ตามไฟล์แนบ
You do not have the required permissions to view the files attached to this post.
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#7
Post
by puriwutpokin » 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
sooksun2009
Member
Posts: 172 Joined: Fri Sep 18, 2015 3:21 pm
Excel Ver: 2013,2016
#8
Post
by sooksun2009 » Wed Sep 02, 2020 3:32 pm
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
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#9
Post
by snasui » 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 ครับ
sooksun2009
Member
Posts: 172 Joined: Fri Sep 18, 2015 3:21 pm
Excel Ver: 2013,2016
#10
Post
by sooksun2009 » Thu Sep 03, 2020 7:31 am
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 แถวล่างสุดของข้อมูล
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#11
Post
by snasui » Thu Sep 03, 2020 7:59 am
การกำหนดค่า LL ขึ้นอยู่กับว่านำไปใช้ประโยชน์อะไร ใช้ซ้ำหรือไม่ ใช้กี่ตำแหน่งครับ
หากใช้ซ้ำใช้หลายตำแหน่ง ควรกำหนดตัวแปรเสมอ จะได้ไม่ต้องเขียน Statement ยาว ๆ
คำถามสำหรับกระทู้นี้เกี่ยวกับบรรทัดสุดท้าย ปัญหาคือการหาบรรทัดสุดท้าย ดังนั้นตัว LL จะต้องให้ผลลัพธ์เป็นบรรทัดสุดท้ายไม่ใช่การนับว่ามีกี่บรรทัดแล้วใช้ Resize เพื่อขยายข้อมูลให้มีจำนวนบรรทัดเท่ากับค่า LL ซึ่งผิดไปจากความต้องการครับ
การหาบรรทัดสุดท้ายแนวทางหนึ่งคือ ให้ไปยังบรรทัดที่มากที่สุดของ Excel จากนั้นขึ้นมายังบรรทัดที่มีข้อมูล ถ้าหาบรรทัดสุดท้ายในคอลัมน์ A ก็จะเขียนได้เป็น
.range("a" & .rows.count).end(xlup).row
sooksun2009
Member
Posts: 172 Joined: Fri Sep 18, 2015 3:21 pm
Excel Ver: 2013,2016
#12
Post
by sooksun2009 » Wed Sep 09, 2020 11:06 am
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 ขอบคุณครับ ตามไฟล์แนบ
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#13
Post
by snasui » Wed Sep 09, 2020 12:46 pm
กรุณาแนบไฟล์ล่าสุดมาด้วยครับ
ช่วยชี้ให้เห็นว่าต้องการคำตอบปลายทางเป็นแบบไหน อย่างไร ใส่สี ตีเส้นมาได้ตามสะดวกครับ
sooksun2009
Member
Posts: 172 Joined: Fri Sep 18, 2015 3:21 pm
Excel Ver: 2013,2016
#14
Post
by sooksun2009 » Wed Sep 09, 2020 3:25 pm
snasui wrote: Wed Sep 09, 2020 12:46 pm
กรุณาแนบไฟล์ล่าสุดมาด้วยครับ
ช่วยชี้ให้เห็นว่าต้องการคำตอบปลายทางเป็นแบบไหน อย่างไร ใส่สี ตีเส้นมาได้ตามสะดวกครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#15
Post
by snasui » Wed Sep 09, 2020 5:57 pm
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 ที่จะทำเช่นนั้นไว้แล้วหรือไม่ครับ
ถ้าเขียนไว้แล้วกรุณาแจ้งมาด้วยว่าติดขัดบรรทัดไหน อย่างไร จะได้ตอบต่อไปจากนั้นครับ