Page 1 of 1
Macro ดึงค่าที่ได้ ไปยังอีก sheet ส่งข้อมูลไปบันทึกต่อท้ายรายการที่มีอยู่แล้ว
Posted: Fri Feb 03, 2017 11:46 am
by gamefunza
คร่าวๆ คือต้องการเก็บประวัติพนักงานที่มาเข้าใช้ห้องพยาบาลครับ
ก็มีค่าทั่วไปๆ เช่น ชื่อ , นามสกุล , แผนก
ต้องการให้ เมื่อกดปุ่ม button แล้ว ดึงข้อมูลไปยังอีก sheet ได้ และต่อท้ายไปเรื่อยๆครับ
ขอคำแนะนำหน่อยครับผม
แนบไฟลรูปภาพมา 2 รูป หน้าฟอรม และ sheet ที่จัดเก็บประวัติ
Re: Macro ดึงค่าที่ได้ ไปยังอีก sheet ส่งข้อมูลไปบันทึกต่อท้ายรายการที่มีอยู่แล้ว
Posted: Fri Feb 03, 2017 2:01 pm
by parakorn
แนบตัวอย่างไฟล์ เพื่อให้ผู้ตอบสามารถช่วยเหลือได้
พร้อมลองเขียนโค้ดมาเอง พอสังเขป ตามกฎของบอร์ดครับ
Re: Macro ดึงค่าที่ได้ ไปยังอีก sheet ส่งข้อมูลไปบันทึกต่อท้ายรายการที่มีอยู่แล้ว
Posted: Tue Feb 07, 2017 2:12 pm
by gamefunza
parakorn wrote:แนบตัวอย่างไฟล์ เพื่อให้ผู้ตอบสามารถช่วยเหลือได้
พร้อมลองเขียนโค้ดมาเอง พอสังเขป ตามกฎของบอร์ดครับ
Code: Select all
Sub Get_Information()
Name = Sheets(1).Cells(5, 4).Value
LastName = Sheets(1).Cells(5, 5).Value
Blood = Sheets(1).Cells(6, 4).Value
Position = Sheets(1).Cells(7, 4).Value
Gender = Sheets(1).Cells(8, 4).Value
Division = Sheets(1).Cells(9, 4).Value
Sheets(5).Cells(1, 1).Value = Name
Sheets(5).Cells(1, 2).Value = LastName
Sheets(5).Cells(1, 3).Value = Blood
Sheets(5).Cells(1, 4).Value = Position
Sheets(5).Cells(1, 5).Value = Gender
Sheets(5).Cells(1, 6).Value = Division
End Sub
ผมลองเขียนได้ประมาณนี้ครับ แต่ผมอยากได้ให้มันไปต่อท้ายข้อมูลเก่าอยากให้ แนะนำวิธีหน่อยครับ
แนบไฟลมาแล้วครับ ขอบคุณครับ
Get_Information.xlsm
Re: Macro ดึงค่าที่ได้ ไปยังอีก sheet ส่งข้อมูลไปบันทึกต่อท้ายรายการที่มีอยู่แล้ว
Posted: Tue Feb 07, 2017 2:38 pm
by puriwutpokin
สร้างหัวคอลัมไว้ด้วยนะครับแล้วใช้โค้ดนี้ดูครับ
Code: Select all
Sub Get_Information()
Dim Lrow As Integer
Lrow = Sheets(5).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Name = Sheets(1).Cells(5, 4).Value
LastName = Sheets(1).Cells(5, 5).Value
Blood = Sheets(1).Cells(6, 4).Value
Position = Sheets(1).Cells(7, 4).Value
Gender = Sheets(1).Cells(8, 4).Value
Division = Sheets(1).Cells(9, 4).Value
Sheets(5).Cells(Lrow, 1).Value = Name
Sheets(5).Cells(Lrow, 2).Value = LastName
Sheets(5).Cells(Lrow, 3).Value = Blood
Sheets(5).Cells(Lrow, 4).Value = Position
Sheets(5).Cells(Lrow, 5).Value = Gender
Sheets(5).Cells(Lrow, 6).Value = Division
End Sub
Re: Macro ดึงค่าที่ได้ ไปยังอีก sheet ส่งข้อมูลไปบันทึกต่อท้ายรายการที่มีอยู่แล้ว
Posted: Tue Feb 07, 2017 3:02 pm
by gamefunza
puriwutpokin wrote:สร้างหัวคอลัมไว้ด้วยนะครับแล้วใช้โค้ดนี้ดูครับ
Code: Select all
Sub Get_Information()
Dim Lrow As Integer
Lrow = Sheets(5).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Name = Sheets(1).Cells(5, 4).Value
LastName = Sheets(1).Cells(5, 5).Value
Blood = Sheets(1).Cells(6, 4).Value
Position = Sheets(1).Cells(7, 4).Value
Gender = Sheets(1).Cells(8, 4).Value
Division = Sheets(1).Cells(9, 4).Value
Sheets(5).Cells(Lrow, 1).Value = Name
Sheets(5).Cells(Lrow, 2).Value = LastName
Sheets(5).Cells(Lrow, 3).Value = Blood
Sheets(5).Cells(Lrow, 4).Value = Position
Sheets(5).Cells(Lrow, 5).Value = Gender
Sheets(5).Cells(Lrow, 6).Value = Division
End Sub
ใช้งานได้ครับผม รบกวนอธิบาย code ส่วนนี้ทีครับ ขอบคุณครับ
Code: Select all
Dim Lrow As Integer
Lrow = Sheets(5).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Re: Macro ดึงค่าที่ได้ ไปยังอีก sheet ส่งข้อมูลไปบันทึกต่อท้ายรายการที่มีอยู่แล้ว
Posted: Tue Feb 07, 2017 3:09 pm
by puriwutpokin
Dim Lrow As Integer เป็นการประกาศตัวแปร ให้ โปรแกรมรับทราบครับ Integer ประกาศเป็นจำนวนเต็มหรือตัวเลข ประมาณนี้ครับ
โดยให้ Lrow เท่ากับ ค่าช่วงของชีทที่5 โดยนับช่วง ที่ Cells(Rows.Count, 1) ไปตำแหน่งสุดท้ายแล้ว นับถัดลงไป 1 Row, Offset(1, 0).Row ประมาณนี้ ต้องอาศัย แกะและTest ดูครับ ผมไม่ได้เรียนมาอธิบายได้เท่านี้เองครับ
Re: Macro ดึงค่าที่ได้ ไปยังอีก sheet ส่งข้อมูลไปบันทึกต่อท้ายรายการที่มีอยู่แล้ว
Posted: Tue Feb 07, 2017 3:12 pm
by gamefunza
puriwutpokin wrote:Dim Lrow As Integer เป็นการประกาศตัวแปร ให้ โปรแกรมรับทราบครับ Integer ประกาศเป็นจำนวนเต็มหรือตัวเลข ประมาณนี้ครับ
โดยให้ Lrow เท่ากับ ค่าช่วงของชีทที่5 โดยนับช่วง ที่ Cells(Rows.Count, 1) ไปตำแหน่งสุดท้ายแล้ว นับถัดลงไป 1 Row, Offset(1, 0).Row ประมาณนี้ ต้องอาศัย แกะและTest ดูครับ ผมไม่ได้เรียนมาอธิบายได้เท่านี้เองครับ
ครับผม พอเข้าใจอยู่ครับ ขอบคุณมากครับ