นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

เอสเค
Ico64
สมเกียรติ ทองรักษ์
นักวิชาการเกษตรชำนาญการพิเศษ
เครือข่าย
สมาชิก · ติดตาม: 0 · ผู้ติดตาม: 5

อ่าน: 8896
ความเห็น: 2

การสร้างฐานข้อมูลใน Excel ตอนที่ 8[C] : การตั้งชื่อให้กับเซลล์ (ต่อ)

เรียนรู้การใช้งาน Excel การสร้างฐานข้อมูลใน Excel การตั้งชื่อให้กับเซลล์

แนะนำกันก่อน   

      
          การสร้างฐานข้อมูลใน Excel ได้เขียนไว้เป็นตอนๆ ถ้าเข้ามาอ่านเพียงตอนใดตอนหนึ่งหรือเพียงบางตอนอาจจะไม่สามารถสรุปเรื่องราวหรือจับประเด็นของเนื้อหาที่อธิบายไว้ได้ครบถ้วน ดังนั้นผู้เรียนรู้จึงควรเริ่มต้นเรียนรู้เนื้อหาแต่ละตอนตามลำดับจากลิงค์ด้านล่างนี้

http://share.psu.ac.th/blog/sk002

       

 ตอนที่ 8 การตั้งชื่อให้กับเซลล์ (ต่อ)


2. การใช้ฟังก์ชัน OFFSET ร่วมกับฟังก์ชัน COUNTA 

       ฟังก์ชัน OFFSET ที่ใช้ร่วมกับ ฟังก์ชัน COUNTA เป็นการส่งค่าสูตรไปหาค่าสุดท้ายโดยที่ให้ COUNTA ไล่หาเซลล์ที่ไม่ว่างไปจนถึงเซลล์สุดท้ายที่มีข้อมูลอยู่  โดยการใช้ตัวกำหนดตำแหน่งว่าจะให้ข้อมูลลงตรงไหนจากจุดที่ให้เริ่มต้นเป็นเซลล์อ้างอิง  นับจากแถว  จากคอลัมน์และมีข้อมูลอยู่กี่คอลัมน์เริ่มต้นทำอย่างไรเริ่มต้นที่ Sheet AllData  ให้ตั้งชื่อ Sheet AllData  โดยคลิกเลือกเมนู Insert เลือก Name และเลือก Define  จะปรากฏกล่อง Define name ขึ้นมา  ใต้ช่อง Name in Workbook ให้ตั้งชื่อเป็น AllData  คลิกไปเลือกใต้ช่องเซลล์ Refers to  ให้พิมพ์ 

=OFFSET(Reference,COUNTA(AllData!$B:$B) -1, 0, 1, 9)

กดปุ่ม ok ดูผลลัพท์ที่ได้

          ดูค่าของ OFFSET ที่ใช้ร่วมกับ COUNTA ให้คลิกเลือกเมนู Insert เลือก Name และเลือก Define เลือก AllData และคลิกไปรับค่าของเซลล์ใต้ช่องเซลล์ Refers to จะเกิดแถบสี่เหลี่ยมจุดกระพริบในช่วงเซลล์  B5:J5 ขึ้นมา แสดงว่าคำสั่งนี้พร้อมที่จะรับค่าข้อมูลที่จะส่งมาลงตั้งแต่ช่วงเซลล์ B5 นับไปทางขวาจำนวน 9 คอลัมน์ คัดลอกมากี่แถวก็จะมาลงให้ตามจำนวนแถวที่คัดลอกจากบนลงล่าง

ทำความเข้าใจสูตร

=OFFSET(Reference,COUNTA(AllData!$B:$B) -1, 0, 1, 9)

-         ฟังก์ชัน OFFSET เป็นการส่งค่าสูตรไปหาค่าสุดท้าย

-         Reference สูตรอ้างไปยังเซลล์เริ่มต้นข้อมูลที่ชื่อ Reference ที่อยู่ในเซลล์  B4

-         COUNTA  ให้สูตรนับค่าจำนวนเซลล์ที่ไม่ว่าง

-         AllData!$B:$B จากข้อมูลที่บรรจุอยู่ใน Sheet AllData ในคอลัมน์ B โดยเริ่มต้นจากเซลล์อ้างอิงที่ชื่อ Reference ที่อยู่ในเซลล์  B4 เป็นหลัก

-         -1 หมายถึง นับไปจากจุดเริ่มต้นที่ให้ข้อมูลนำมาลงต่ำลงมาจากจุด Reference 1 แถว

-         0 หมายถึง บริเวณที่เริ่มต้นข้อมูลจริงไปทางขวา 0 คอลัมน์ คือจุดเดิมไม่เลื่อนคอลัมน์ไปขวา

-         1 หมายถึง แถวที่ให้เริ่มต้นที่ให้นำข้อมูลมาลง

-         9 หมายถึง จำนวนคอลัมน์ที่ส่งค่าไป ในที่นี้คือ 9 คอลัมน์

3.  การเขียนรหัส macro ส่งข้อมูลจากฟอร์ม Sheet InputData ไปยัง Sheet AllData

          วิธีการก็คือจะใช้ฟอร์มดังกล่าวนี้ในการกรอกข้อมูล หลังจากนั้นก็จะสร้างปุ่ม macro เพื่อส่งข้อมูลที่อยู่ใน Sheet InputData ที่กรอกทั้งหมดไปเก็บไว้ใน Sheet AllData  เมื่อข้อมูลได้ถูกส่งไปแล้วก็จะกลับมายัง Sheet InputData เพื่อลบข้อมูลที่กรอกไว้

          เขียน Code ที่ชื่อ CopyToAllData ลงใน Module1 เพื่อกำหนดให้ macro ทำงานด้วยการเรียกหน้าต่าง VBA ให้เปิดขึ้นมา โดยการกดปุ่ม Alt+F11

           ที่ VBAProject  ดับเบิลคลิกที่ Modules เลือก Module1 รหัส Code ของ Module1 จะปรากฏขึ้นมาทางด้านขวา

 

พิมพ์ Code CopyToAllData ดังต่อไปนี้ลงไปในช่องว่างต่อจาก Code Menu ที่อยู่ด้านขวามือ

Sub CopyToAllData()     
    Application.Goto Reference:="InputData"
     Selection.Copy
    Application.Goto Reference:="AllData"
    ActiveSheet.Paste
    Application.CutCopyMode = False
     Range("A1").Select
    Sheets("InputData").Select
     Range("B5:J19").Select
    Selection.ClearContents
     Range("B5").Select
    Application.ScreenUpdating = True
End Sub

          กดปุ่มปิดหน้าต่าง Microsoft Visual Basic

4. จัดเก็บข้อมูลรายการสุกร

          สร้างปุ่มรับคำสั่งให้คัดลอกข้อมูลที่ส่งจากฟอร์ม ของ Sheet InputData ไปไว้ใน Sheet AllData

 

          ไปที่ Sheet InputData คัดลอกฟอร์มจากปุ่ม กลับสู่เมนูหลัก  โดยคลิกขวา เลือกคำสั่ง Copy

          คลิกเลือกเซลล์ H3 คลิกขวา เลือกคำสั่ง Paste

 

 

 

 

         คลิกเข้าไปด้านในชื่อ กลับสู่เมนูหลัก ที่ได้คัดลอกมาใหม่ เปลี่ยนชื่อเป็น จัดเก็บข้อมูลรายการสุกร หลังจากนั้นให้คลิกขวาที่กรอบนอกแถบเมนู จัดเก็บข้อมูลรายการสุกร เพื่อกำหนดค่าให้ปุ่ม macro ที่ได้สร้างไว้

          เลือก Assign Macro เลือก macro name ที่ชื่อ CopyToAllData กดปุ่ม ok ก็จะได้ปุ่มที่ใช้ จัดเก็บข้อมูลรายการสุกร

 

 

 

          ใน Code คำสั่งของ macro ชุดนี้จะใช้เก็บข้อมูลในฟอร์มที่บันทึกข้อมูลไว้ใน Sheet InputData ของช่วงเซลล์ B5:J19 ใน Code ส่วนหนึ่งได้อ้างให้ไปคัดลอกเอาข้อมูลส่วนนี้ด้วย จึงต้องมีการตั้งชื่อช่วงข้อมูล B5:J19 เป็นชื่อ InputData

          คลิกเลือกเมนู Insert เลือก Name และเลือก Define  จะปรากฏกล่อง Define name ขึ้นมา  ใต้ช่อง Name in Workbook ให้ตั้งชื่อเป็น InputData  คลิกไปเลือกใต้ช่องเซลล์ Refers to  ให้พิมพ์  =InputData!$B$5:$J$19 คลิก OK

          ไปที่ Sheet InputData ทดลองเรียกชื่อ InputData ดูว่าถูกต้องหรือไม่ โดยคลิกเลือกเมนู Insert เลือก Name และเลือก Define  จะปรากฏกล่อง Define name ขึ้นมา  ใต้ช่อง Name in Workbook ให้เลือกชื่อ InputData และคลิกไปเลือกใต้ช่องเซลล์ Refers to จะเกิดแถบจุดกระพริบในช่วงเซลล์ B5:J19

          ทดสอบปุ่มคำสั่ง macro จัดเก็บข้อมูลรายการสุกร ที่เขียนไว้ โดยการคลิกที่ปุ่มดังกล่าว ข้อมูลทั้งหมดในฟอร์มของ Sheet InputData ของช่วงเซลล์ B5:J19 จะถูกจัดเก็บไว้ที่ Sheet AllData และกลับมาที่ Sheet InputData ที่เดิม เพื่อรอการบันทึกข้อมูลใหม่ 

ตอนต่อไป ตอนที่ 9 : การเพิ่มข้อมูล

สร้าง: 30 กันยายน 2552 06:30 แก้ไข: 03 ตุลาคม 2552 09:57 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

ขอคุณค่ะ ที่เขียน ได้ประโยชน์มาก;)

Ico48
tidkeaw [IP: 203.154.149.228]
19 มกราคม 2553 22:05
#53131

ผมมีปัญหาว่า จัดเก็บข้อมูลรายการสุกรแล้ว เกิด "RUN TIME ERROR '1004' : การอ้างอิงไม่ถูกต้อง

จะแก้ไขอย่างไรดีครับ ช่วยชี้แนะด้วย

ขอบคุณครับ

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 34.204.186.91
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ