ค่าสัมบูรณ์ของตัวเลขใน Excel การรวมโมดูโล่ใน Excel วิธีการคำนวณทางเลือก

โมดูลัส (หรือค่าสัมบูรณ์) ของตัวเลขในทางคณิตศาสตร์เป็นจำนวนที่ไม่เป็นลบ ซึ่งค่าจะขึ้นอยู่กับประเภทของตัวเลข
ถ้าเป็นจำนวน ไม่เป็นลบ ดังนั้นโมดูลัสจะเท่ากับจำนวนนั้นเอง ( ที่ ก ≥ 0) ถ้าเป็นลบโมดูลจะเท่ากับค่าบวก ( -กที่ ก< 0 ):

การค้นหา ค่าโมดูโล่มีฟังก์ชันมาตรฐานใน Excel เอบีเอส.
โดยทั่วไป การค้นหาค่าสัมบูรณ์เป็นการคำนวณที่ค่อนข้างง่าย ดังนั้นฟังก์ชันนี้จึงเป็นมาตรฐานในภาษาการเขียนโปรแกรมหลายภาษา เช่น ใน VBA (Visual Basic for Applications) สูตรโมดูลัสก็เขียนเป็น Abs เช่นกัน

ฟังก์ชั่นโมดูลใน Excel

ไวยากรณ์ของฟังก์ชันและคำอธิบาย เอบีเอส:

เอบีเอส(หมายเลข)
ส่งกลับโมดูลัส (ค่าสัมบูรณ์) ของตัวเลข

  • ตัวเลข (อาร์กิวเมนต์ที่จำเป็น)— จำนวนจริงที่ต้องคำนวณโมดูลัส

เราระบุจำนวนจริงตามอำเภอใจเป็นอาร์กิวเมนต์ของฟังก์ชัน และผลที่ได้คือค่าสัมบูรณ์:


แม้ว่าเครื่องหมายโมดูลัสในคณิตศาสตร์จะแสดงเป็นแถบแนวตั้งก็ตาม | การพยายามใส่เครื่องหมายโมดูลัสใน Excel เพื่อค้นหาค่าโมดูโลจะทำให้เกิดข้อผิดพลาด เช่น เมื่อป้อนสูตร =|-29| Excel จะเกิดข้อผิดพลาด

วิธีการคำนวณทางเลือก

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

การใช้ฟังก์ชัน SIGN

ตามคำจำกัดความ โมดูลัสเป็นค่าที่ไม่เป็นลบของตัวเลขเดิม ดังนั้น การคูณตัวเลขด้วย 1 หรือ -1 ขึ้นอยู่กับเครื่องหมายของตัวเลข (นั่นคือ เราคูณบวกด้วย 1 ลบคูณด้วย -1 ) ในที่สุดเราก็จะได้ค่าสัมบูรณ์:

โมดูลคืออะไร

ตามคำนิยาม โมดูลัสคือการดำเนินการทางคณิตศาสตร์ที่ส่งคืนค่าสัมบูรณ์ของตัวเลข ซึ่งก็คือตัวเลขนั้นเองโดยไม่มีเครื่องหมาย แม้จะมีข้อมูลเฉพาะเจาะจง แต่การใช้โมดูลนี้ไม่เพียงแต่สามารถพบได้ในการแก้ปัญหาทางคณิตศาสตร์เท่านั้น แต่ยังพบได้ในแบบจำลองทางเศรษฐศาสตร์ ฟิสิกส์ และวิทยาศาสตร์ที่แน่นอนอื่นๆ อีกมากมาย

วิธีการคำนวณโมดูลใน Excel?

ในการคำนวณโมดูลัสใน Excel คุณสามารถใช้ได้หลายวิธี วิธีที่ง่ายที่สุดคือฟังก์ชัน ABS จะส่งกลับค่าสัมบูรณ์ของตัวเลขหรือนิพจน์ทางคณิตศาสตร์ที่เลือก

ไวยากรณ์ของฟังก์ชันโมดูลนั้นง่ายมาก - ใน Excel คุณเพียงแค่ต้องตั้งค่า "= ABS" ในแถบสูตรจากนั้นในวงเล็บให้ระบุอาร์กิวเมนต์ซึ่งอาจเป็นตัวเลขการอ้างอิงถึงเซลล์รวมถึงบางส่วน ฟังก์ชันที่ส่งกลับค่าตัวเลข การดำเนินการนี้สามารถทำได้โดยคลิกปุ่ม "แทรกฟังก์ชัน" ซึ่งคุณเลือกฟังก์ชันที่เหมาะสม หรือใช้การค้นหาโดยระบุคำว่า "โมดูล" หรือ "ABS"

การคำนวณผลรวมของโมดูล

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

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

=SUM(เอบีเอส(A1:A4))

ที่นี่ในคอลัมน์ A สี่แถวแรกระบุค่าที่ต้องดำเนินการเพิ่มเติมแบบโมดูโล

ตัวอย่าง

เพื่อรวบรวมความเข้าใจของคุณเกี่ยวกับคำอธิบายของโมดูลใน Excel และหลักการทำงานของโมดูลนั้น คุณควรพิจารณาตัวอย่างง่ายๆ สองสามตัวอย่างที่สาธิตการทำงานของฟังก์ชัน

ในการคำนวณโมดูลัสของตัวเลขที่กำหนดหรือตัวอย่างทางคณิตศาสตร์ เช่น ความแตกต่างระหว่าง 2 และ 5 คุณควรใช้สัญกรณ์ต่อไปนี้:

=เอบีเอส(2-5)

ผลลัพธ์ของแบบสอบถามนี้จะเป็นหมายเลข "3"

หากคุณต้องการคำนวณผลรวมของโมดูลัสขององค์ประกอบเมทริกซ์ค่าที่เขียนไว้ในตารางด้วยช่วง A1:C3 วิธีที่เร็วที่สุดในการค้นหาคำตอบคือโครงสร้างต่อไปนี้:

=SUM(เอบีเอส(A1:C3))

ตัวอย่างการคำนวณโมดูลัส

เพื่อให้ตัวอย่างนี้เข้าใจง่ายขึ้น เรามาทำทุกอย่างด้วยตนเองกัน ขั้นแรก ให้คัดลอกลงในแท็บว่างของ Excel ของคุณ ทำเช่นนี้:
เน้นตัวอย่าง ถ้าจำเป็นต้องคัดลอกตัวอย่างลงใน Excel Web App ให้คัดลอกและวางทีละเซลล์ ข้อควรสนใจ - ไม่จำเป็นต้องเน้นส่วนหัวของแถวและคอลัมน์

เมื่อเลือกแล้ว ให้กด CTRL และ C บนแป้นพิมพ์ ซึ่งจะเขียนทับฟิลด์ที่คุณเลือก จากนั้นไปที่แท็บของคุณและบนเซลล์ A1 ย้ายส่วนที่เลือกโดยกดปุ่ม CTRL และ V พร้อมกัน นี่คือการดำเนินการคัดลอก หากคุณกำลังทำงานใน Excel Web App ให้ทำตามขั้นตอนนี้สำหรับแต่ละเซลล์แยกกัน ความสนใจ! เพื่อให้ตัวอย่างนี้ทำงานได้อย่างถูกต้อง จะต้องแทรกลงในแท็บบนเซลล์ A1

หากต้องการเปลี่ยนจากโหมดการดูผลลัพธ์เป็นโหมดการดูสูตรที่ส่งคืนโมดูลนี้ คุณต้องกดสองปุ่มพร้อมกัน นั่นคือ control + ` (สำเนียงทื่อ) หรือโดยการเลือกปุ่ม "แสดงสูตร"

3 สูตร คำอธิบายผลลัพธ์

หากช่วงมีจำนวนบวกและลบ และคุณต้องการผลรวมของค่าสัมบูรณ์ สามารถทำได้โดยการเขียนลงในเซลล์เดียว

ง่ายต่อการค้นหาการบวกค่าสัมบูรณ์ในช่วงใดๆ (เช่น A12:A15) เพียงสร้างคอลัมน์เพิ่มเติมโดยเขียน =ABS(A12) ลงไป จากนั้น เมื่อใช้ฟังก์ชัน SUM เราจะคำนวณการบวก คุณสามารถสร้างสูตรที่จะค้นหาผลรวมของค่าสัมบูรณ์ได้ทันที ไม่จำเป็นต้องสร้างคอลัมน์เพิ่มเติม จะมีลักษณะเช่นนี้ =SUMPRODUCT(ABS(A12:A15))

อีกทางเลือกหนึ่งสำหรับการบวกแบบโมดูโลจะดำเนินการโดยใช้อาร์เรย์ =SUM(ABS(A12:A15)) หลังจากป้อนสิ่งนี้แล้ว คุณควรกด control และ shift+enter แทนการป้อน

ตัวอย่างนี้ให้คำตอบที่สมบูรณ์และครอบคลุมสำหรับคำถามที่ถาม และตอนนี้ไม่มีอะไรจะทำให้คุณลำบากอีกต่อไป ขอให้มีความสุขกับการทำงานใน Excel!

โมดูลคืออะไรและฟังก์ชันใดที่มองหาค่าใน Excel ค่าสัมบูรณ์ของตัวเลขจะถูกส่งกลับโดยฟังก์ชัน ABS ค่าสัมบูรณ์คือค่าของตัวเลขที่ไม่มีเครื่องหมาย นี่คือโมดูลัส
จะเขียนสิ่งนี้อย่างถูกต้องใน Excel ได้อย่างไร?
ABS (ตัวเลขที่คุณต้องการ) เช่น ABS(-156)
ไวยากรณ์ของฟังก์ชัน ABS(module) มีอาร์กิวเมนต์ดังนี้
Number เป็นพารามิเตอร์ที่จำเป็น นี่คือจำนวนจริงที่ต้องระบุขนาด

ตัวอย่างการคำนวณโมดูลัส

เพื่อให้ตัวอย่างนี้เข้าใจง่ายขึ้น เรามาทำทุกอย่างด้วยตนเองกัน ขั้นแรก ให้คัดลอกลงในแท็บว่างของ Excel ของคุณ ทำเช่นนี้:
เน้นตัวอย่าง ถ้าจำเป็นต้องคัดลอกตัวอย่างลงใน Excel Web App ให้คัดลอกและวางทีละเซลล์ ข้อควรสนใจ - ไม่จำเป็นต้องเน้นส่วนหัวของแถวและคอลัมน์

เมื่อเลือกแล้ว ให้กด CTRL และ C บนแป้นพิมพ์ ซึ่งจะเขียนทับฟิลด์ที่คุณเลือก จากนั้นไปที่แท็บของคุณและบนเซลล์ A1 ย้ายส่วนที่เลือกโดยกดปุ่ม CTRL และ V พร้อมกัน นี่คือการดำเนินการคัดลอก หากคุณกำลังทำงานใน Excel Web App ให้ทำตามขั้นตอนนี้สำหรับแต่ละเซลล์แยกกัน ความสนใจ! เพื่อให้ตัวอย่างนี้ทำงานได้อย่างถูกต้อง จะต้องแทรกลงในแท็บบนเซลล์ A1

หากต้องการเปลี่ยนจากโหมดการดูผลลัพธ์เป็นโหมดการดูสูตรที่ส่งคืนโมดูลนี้ คุณต้องกดสองปุ่มพร้อมกัน นั่นคือ control + ` (สำเนียงทื่อ) หรือโดยการเลือกปุ่ม "แสดงสูตร"

3 สูตร คำอธิบายผลลัพธ์

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

ง่ายต่อการค้นหาการบวกค่าสัมบูรณ์ในช่วงใดๆ (เช่น A12:A15) เพียงสร้างคอลัมน์เพิ่มเติมโดยเขียน =ABS(A12) ลงไป จากนั้น เมื่อใช้ฟังก์ชัน SUM เราจะคำนวณการบวก คุณสามารถสร้างสูตรที่จะค้นหาผลรวมของค่าสัมบูรณ์ได้ทันที ไม่จำเป็นต้องสร้างคอลัมน์เพิ่มเติม จะมีลักษณะเช่นนี้ =SUMPRODUCT(ABS(A12:A15))

อีกทางเลือกหนึ่งสำหรับการบวกแบบโมดูโลจะดำเนินการโดยใช้อาร์เรย์ =SUM(ABS(A12:A15)) หลังจากป้อนสิ่งนี้แล้ว คุณควรกด control และ shift+enter แทนการป้อน

ตัวอย่างนี้ให้คำตอบที่สมบูรณ์และครอบคลุมสำหรับคำถามที่ถาม และตอนนี้ไม่มีอะไรจะทำให้คุณลำบากอีกต่อไป ขอให้มีความสุขกับการทำงานใน Excel!

ความรู้เบื้องต้นเกี่ยวกับแนวคิดของโมดูล ขั้นตอน แบบฟอร์มใน VBA Excel โมดูลประเภทต่างๆ การสร้างแบบฟอร์มที่กำหนดเอง กล่องโต้ตอบในตัว

วิธีที่ง่ายที่สุดในการไปที่โปรแกรมแก้ไข VBA คือการกดคีย์ผสม Alt+F11 โดยที่หน้าต่าง Excel ทำงานอยู่ (ที่นี่ใช้ปุ่ม Alt ด้านซ้าย) ชุดค่าผสมนี้ใช้ได้กับโปรแกรมทุกเวอร์ชัน หากในหน้าต่างที่เปิดขึ้นไม่มีหน้าต่าง explorer "Project-VBAProject" ทางด้านซ้ายให้เรียกมันผ่านเมนูหลักโดยเลือก "View" - "Project Explorer" หน้าต่างด้านในในตัวแก้ไข VBA สามารถลากและวางในตำแหน่งอื่นในหน้าต่างหลักได้

โมดูล

โมดูลสมุดงาน Excel เป็นไฟล์ที่ออกแบบมาเพื่อสร้างและจัดเก็บโค้ดโปรแกรมในรูปแบบของขั้นตอน (รูทีนย่อย ฟังก์ชัน และคุณสมบัติผู้ใช้) มีโมดูลหลายประเภท

โมดูลมาตรฐาน

โมดูลมาตรฐานเป็นไฟล์แยกต่างหากที่สร้างไว้ในสมุดงาน Excel และเป็นของวัตถุสมุดงานทั้งหมดที่โต้ตอบกับโมดูล (สมุดงาน แผ่นงาน UserForm) โมดูลมาตรฐานสามารถส่งออก นำเข้า และลบได้ ขั้นตอนสาธารณะที่มีชื่อเฉพาะมีอยู่ในโมดูลอื่นๆ ทั้งหมดของสมุดงานโดยไม่ต้องระบุที่อยู่เพิ่มเติม ขั้นตอนสาธารณะที่มีชื่อไม่ซ้ำกันจำเป็นต้องมีชื่อของโมดูลที่ใช้เรียก

การสร้างโมดูลมาตรฐาน:

  1. เปิดสมุดงาน Excel ที่คุณวางแผนจะเพิ่มโมดูลมาตรฐานใหม่ หรือสร้างสมุดงานใหม่เพื่อวัตถุประสงค์ในการฝึกอบรม
  2. เปิดตัวแก้ไข VBA โดยใช้แป้นพิมพ์ลัด Alt+F11
  3. ในหน้าต่างตัวแก้ไข VBA คลิกที่รายการเมนู "แทรก" และเลือก "โมดูล" จากรายการที่เปิดขึ้น

ดังนั้นคุณจึงได้สร้างโมดูลมาตรฐานใหม่ ใน Explorer ทางด้านขวาโฟลเดอร์ "Modules" จะปรากฏขึ้นและในนั้นจะมีไฟล์ "Module1" (หรือ "Module" ด้วยหมายเลขอื่นหากหนังสือของคุณมีโมดูลอยู่แล้ว) โมดูลเดียวกันจะถูกสร้างขึ้นเมื่อบันทึกด้วยเครื่องบันทึกในตัว

คุณสามารถเปิดหรือไปที่หน้าต่างของโมดูลมาตรฐานที่เปิดอยู่ได้โดยดับเบิลคลิกที่ชื่อใน Explorer หรือโดยการเปิดเมนูบริบทด้วยปุ่มเมาส์ขวาแล้วเลือก "ดูโค้ด" นอกจากนี้ โมดูลที่เปิดอยู่แล้วทั้งหมดจะมีอยู่ในแท็บ "หน้าต่าง" ของเมนูหลัก

โน๊ตสำคัญ:ใน Excel 2007-2016 สมุดงานที่มีโมดูลโปรแกรมจะถูกบันทึกเป็น “สมุดงาน Excel พร้อมการสนับสนุนแมโคร (.xlsm)” หากคุณเพิ่มโมดูลลงในสมุดงาน "สมุดงาน Excel (.xlsx)" เมื่อคุณบันทึกหรือปิด Excel จะเสนอให้บันทึกเป็น "สมุดงาน Excel พร้อมการสนับสนุนแมโคร (.xlsm)" มิฉะนั้นจะเปลี่ยนแปลง (สร้างหรือนำเข้า) โมดูล) จะไม่ถูกเก็บรักษาไว้

โมดูลหนังสือ

โมดูลสมุดงานเป็นของวัตถุสมุดงานเท่านั้น คุณสามารถเปิดหรือไปที่หน้าต่างของโมดูลหนังสือที่เปิดได้โดยดับเบิลคลิกที่รายการ "ThisBook" ใน Explorer หรือโดยเปิดเมนูบริบทด้วยปุ่มเมาส์ขวาแล้วเลือก "ดูรหัส" นอกจากนี้ โมดูลแบบเปิดยังมีอยู่ในแท็บ "หน้าต่าง" ของเมนูหลัก

โมดูลแผ่นงาน

โมดูลแผ่นงานเป็นของวัตถุแผ่นงานเท่านั้น คุณสามารถเปิดโมดูลชีตได้โดยดับเบิลคลิกที่ชื่อใน Explorer หรือคลิกขวาที่เมนูบริบทและเลือก "ดูโค้ด" นอกจากนี้ คุณสามารถไปที่โมดูลชีตจากสมุดงานได้โดยคลิกขวาที่ทางลัดของชีตนี้แล้วเลือก "ดูโค้ด" ในเมนูบริบท โมดูลที่เปิดอยู่ในแท็บ "หน้าต่าง" ของเมนูหลัก

โมดูลแบบฟอร์ม

โมดูลฟอร์มเป็นของวัตถุ UserForm เท่านั้น เปิดตัวแก้ไข VBA ด้วยแป้นพิมพ์ลัด Alt+F11 และคลิกที่รายการเมนู "แทรก" ในรายการที่เปิดขึ้น ให้เลือก “UserForm” สิ่งนี้จะสร้างแบบฟอร์มผู้ใช้ใหม่ "UserForm1" ใน Explorer ทางด้านขวาโฟลเดอร์ "Forms" จะปรากฏขึ้นและในนั้นจะมีไฟล์ "UserForm1" คุณสามารถไปที่โมดูลฟอร์มได้โดยดับเบิลคลิกที่ฟอร์มนั้นเอง หรือคลิกขวาที่ชื่อฟอร์มใน Explorer แล้วเลือก "ดูโค้ด" ในเมนูบริบท นอกจากนี้ โมดูลแบบเปิดยังมีอยู่ในแท็บ "หน้าต่าง" ของเมนูหลัก

คุณสามารถสร้างโมดูลมาตรฐานจำนวนเท่าใดก็ได้ในหนังสือเล่มเดียว เฉพาะโมดูลหนังสือเดียวเท่านั้น แผ่นงานหรือโมดูลแบบฟอร์มเดียวเท่านั้นสำหรับแต่ละแผ่นงานหรืออินสแตนซ์ของแบบฟอร์ม

คุณสามารถสลับระหว่างหน้าต่างที่เปิดอยู่ของแบบฟอร์มและโมดูลได้โดยคลิกแท็บ "หน้าต่าง" ในเมนูหลัก ซึ่งมีรายการโมดูลและแบบฟอร์มที่เปิดอยู่ทั้งหมด (วัตถุที่ใช้งานอยู่จะถูกทำเครื่องหมายด้วยเครื่องหมายถูก)

ขั้นตอน

ขั้นตอนใน VBA Excel แบ่งออกเป็น 3 ประเภท:

  • ย่อย (รูทีนย่อย)
  • ฟังก์ชั่น (ฟังก์ชั่น)
  • คุณสมบัติ (คุณสมบัติที่กำหนดเอง)

ข้อแตกต่างหลักระหว่างฟังก์ชันและรูทีนย่อยก็คือ ฟังก์ชันจะส่งกลับผลลัพธ์ของการคำนวณ ในขณะที่รูทีนย่อยไม่ได้ส่งกลับ ขั้นตอนคุณสมบัติมีไว้สำหรับการสร้างและจัดการคุณสมบัติแบบกำหนดเอง (ไม่ได้ใช้บ่อย)

ในตัวแก้ไข VBA Excel ให้ไปที่โมดูลมาตรฐานแล้วคลิกรายการเมนู "แทรก" ในรายการที่เปิดขึ้น เลือก "ขั้นตอน..." หน้าต่างจะปรากฏขึ้นเพื่อขอให้คุณป้อนชื่อขั้นตอน เลือกประเภทและพื้นที่การมองเห็น สร้างโพรซีเดอร์สองสามขั้นตอนโดยมีพื้นที่การมองเห็นที่แตกต่างกัน โดยให้อันหนึ่งเป็น Sub และอีกอันเป็น Function ในช่วงเวลาระหว่างจุดเริ่มต้นและจุดสิ้นสุดของโพรซีเดอร์ โค้ดโปรแกรมจะถูกเขียน

Private Sub Test() "โค้ด End Sub ถูกเขียนไว้ที่นี่

การมองเห็นแบบส่วนตัวหมายความว่าขั้นตอนนี้สามารถเรียกได้จากโมดูลเดียวกันกับที่เขียนไว้เท่านั้น

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

ขั้นตอนสาธารณะ (สาธารณะ) สามารถเขียนได้โดยไม่ต้องระบุการมองเห็นอย่างชัดเจน - โซนการมองเห็นสาธารณะจะถือเป็นค่าเริ่มต้น

การบันทึกครั้งแรก:

การทดสอบย่อยสาธารณะ () สิ้นสุดย่อย

และรายการที่สอง:

การทดสอบย่อย() สิ้นสุดย่อย

MsgBox เป็นหน้าต่างที่แสดงข้อมูลโดยการส่งคืนค่าตัวเลขของปุ่มที่ผู้ใช้กด

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

โมดูลัส (หรือค่าสัมบูรณ์) ของตัวเลขในทางคณิตศาสตร์เป็นจำนวนที่ไม่เป็นลบ ซึ่งค่าจะขึ้นอยู่กับประเภทของตัวเลข
ถ้าเป็นจำนวน ไม่เป็นลบ ดังนั้นโมดูลัสจะเท่ากับจำนวนนั้นเอง ( ที่ ก ≥ 0) ถ้าเป็นลบโมดูลจะเท่ากับค่าบวก ( -กที่ ก< 0 ):

การค้นหา ค่าโมดูโล่มีฟังก์ชันมาตรฐานใน Excel เอบีเอส.
โดยทั่วไป การค้นหาค่าสัมบูรณ์เป็นการคำนวณที่ค่อนข้างง่าย ดังนั้นฟังก์ชันนี้จึงเป็นมาตรฐานในภาษาการเขียนโปรแกรมหลายภาษา เช่น ใน VBA (Visual Basic for Applications) สูตรโมดูลัสก็เขียนเป็น Abs เช่นกัน

ฟังก์ชั่นโมดูลใน Excel

ไวยากรณ์ของฟังก์ชันและคำอธิบาย เอบีเอส:

เอบีเอส(หมายเลข)
ส่งกลับโมดูลัส (ค่าสัมบูรณ์) ของตัวเลข

  • ตัวเลข(อาร์กิวเมนต์ที่จำเป็น) - จำนวนจริงที่ต้องคำนวณโมดูลัส

เราระบุจำนวนจริงตามอำเภอใจเป็นอาร์กิวเมนต์ของฟังก์ชัน และผลที่ได้คือค่าสัมบูรณ์:

แม้ว่าเครื่องหมายโมดูลัสในคณิตศาสตร์จะแสดงเป็นแถบแนวตั้งก็ตาม | การพยายามใส่เครื่องหมายโมดูลัสใน Excel เพื่อค้นหาค่าโมดูโลจะทำให้เกิดข้อผิดพลาด เช่น เมื่อป้อนสูตร =|-29| Excel จะเกิดข้อผิดพลาด

วิธีการคำนวณทางเลือก

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

การใช้ฟังก์ชัน SIGN

ตามคำจำกัดความ โมดูลัสเป็นค่าที่ไม่เป็นลบของตัวเลขเดิม ดังนั้น การคูณตัวเลขด้วย 1 หรือ -1 ขึ้นอยู่กับเครื่องหมายของตัวเลข (นั่นคือ เราคูณบวกด้วย 1 ลบคูณด้วย -1 ) ในที่สุดเราก็จะได้ค่าสัมบูรณ์:

การใช้ฟังก์ชัน SQRT

หากต้องการค้นหาโมดูลัส เราสามารถใช้คุณสมบัติรากที่สองใน Excel ได้เช่นกัน
โปรดจำไว้ว่า Excel ใช้แนวคิดของการรูททางคณิตศาสตร์ในการคำนวณรากของเลขยกกำลังคู่
กล่าวอีกนัยหนึ่ง การรูทเลขคู่ใน Excel จะใช้ค่าที่ไม่เป็นลบเสมอ ดังนั้นเมื่อเราหารากที่สองของจำนวนกำลังสอง เราจะได้ค่าสัมบูรณ์อีกครั้ง:

ขอให้โชคดีและพบกันใหม่ในหน้าบล็อก Tutorexcel.ru!

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

น่าเสียดายที่ไม่มีฟังก์ชันในตัวใน Microsoft Excel ที่สามารถทำการสรุปแบบโมดูโลได้ ดังนั้นคุณต้องทำงานเล็กน้อยเพื่อให้ได้คำตอบที่ถูกต้อง

นี่คือข้อมูลของเรา:

เราจะเห็นว่าผลรวมของตัวเลขในช่วงนั้น A2:A8ให้ผลลัพธ์ -60 :

10 + 10 + 20 + -20 + 30 + -40 + -50 = -60

หากเราดูค่าสัมบูรณ์ (ตัวเลขที่ไม่มีเครื่องหมาย "-") ผลลัพธ์จะเป็น:

10 + 10 + 20 + 20 + 30 + 40 + 50 = 180

ตัวเลือกที่ 1 - การใช้คอลัมน์ตัวช่วย

ในความคิดของฉัน วิธีที่ดีที่สุดในการคำนวณผลรวมของค่าสัมบูรณ์ใน Excel คือการใช้คอลัมน์ตัวช่วย ไปยังเซลล์ บี2ป้อนสูตร:

แล้วยืดให้ถึงเซลล์ B8- การทำงาน เอบีเอสส่งกลับโมดูลัสของตัวเลข ตอนนี้เราสามารถรวมช่วงได้ บี2:บี8และนี่จะให้ผลลัพธ์แก่เรา

ผลรวม(B2:B8)
=ผลรวม(B2:B8)

ในตัวอย่างของฉันช่วง A1:A8- นี่คือตารางข้อมูลที่ครบถ้วน ดังนั้นเมื่อเติมสูตรแล้ว =เอบีเอส(A2)ไปที่เซลล์ ที่ 2 Excel ขยายตารางและเติมเซลล์ทั้งหมดในคอลัมน์โดยอัตโนมัติ ต่อไปฉันไปที่แท็บ ตัวสร้าง(การออกแบบ) ซึ่งอยู่ในกลุ่มแท็บ การทำงานกับตาราง(เครื่องมือตาราง) และทำเครื่องหมายไว้ข้างตัวเลือก เส้นรวม(แถวรวม) ค่าทั้งหมดในคอลัมน์ บีจะถูกสรุปโดยอัตโนมัติ และผลลัพธ์จะแสดงเป็นบรรทัดแยกกัน

หากต้องการคำนวณจำนวนเงินในบรรทัดรวม ให้ใช้ฟังก์ชัน ผลรวมย่อย(ผลรวมย่อย) นี่คือฟังก์ชันทั่วไปที่สามารถทำการบวกได้ เช่นเดียวกับฟังก์ชัน ผลรวม(ผลรวม) แต่ก็มีความแตกต่างที่สำคัญเช่นกัน เช่น ผลรวมย่อย(SUBTOTAL) จะละเว้นตัวเลขที่ถูกซ่อนด้วยตนเองหรือโดยการกรองโดยสิ้นเชิง มีความแตกต่างอื่นๆ อีกเล็กน้อย แต่สิ่งเหล่านี้ไม่เกี่ยวข้องกับหัวข้อของบทความนี้เลย

ข้อดีของวิธีคอลัมน์เสริมคือช่วยให้คุณมีความยืดหยุ่นมากขึ้น หากคุณต้องการใช้ข้อมูลในอนาคต เช่น ในรูปแบบของตารางหรือตารางสรุปข้อมูล นอกจากนี้ คอลัมน์เสริมยังสามารถใช้เพื่อเรียงลำดับตัวเลขแบบโมดูโลได้อีกด้วย

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

ตัวเลือกที่ 2 - การใช้ฟังก์ชัน SUM ในสูตรอาร์เรย์หรือ SUMPRODUCT

ใช้สูตรอาร์เรย์หรือ ซัมโปรดักส์(SUMPRODUCT) การแก้ปัญหาดังกล่าวเป็นแนวทางที่หยาบมาก!

การทำงาน ผลรวมในสูตรอาร์เรย์:

ผลรวม(เอบีเอส(A2:A8))
=SUM(เอบีเอส(A2:A8))

เมื่อป้อนสูตรอาร์เรย์ต้องแน่ใจว่าได้กด Ctrl+Shift+Enter.

สูตรด้วย สรุป:

สรุปผล(ABS(A2:A8))
=SUMPRODUCT(เอบีเอส(A2:A8))

พิจารณาว่าสามารถใช้ฟังก์ชันที่มีประสิทธิภาพมากขึ้นได้ ซูมิฟ(SUMIF) เพื่อให้ได้ผลลัพธ์เดียวกัน (ดูตัวเลือก 3) เส้นทางที่ใช้สองสูตรนี้จะไม่เป็นที่ต้องการ ทั้งสองสูตรทำงานได้ดีกับข้อมูลช่วงเล็กๆ ฉันแน่ใจว่าคุณจะไม่สังเกตเห็นความแตกต่างด้วยซ้ำ หากคุณต้องการรวมค่าจำนวนมาก ความเร็วในการทำงานจะลดลงอย่างเห็นได้ชัด

ตัวเลือก 3 - การใช้ SUMIF

ฉันคิดว่าวิธีนี้เป็นวิธีที่สะดวกที่สุดจากทั้งหมดที่ระบุไว้ก่อนหน้านี้ การใช้ฟังก์ชัน ซูมิฟค่า (SUMIF) แบ่งออกเป็น 2 อาร์เรย์ คือ มีจำนวนบวกและลบและบวกเข้าด้วยกัน ศูนย์จะถูกละเว้นด้วยเหตุผลที่ชัดเจน จากนั้นเราก็ลบค่าลบออกจากผลบวก (เช่น รวมเข้าด้วยกัน) สูตรมีลักษณะดังนี้:

SUMIF(A2:A8,">0")-SUMIF(A2:A8,"0")-SUMIF(A2:A8,"0", "0"
เราดำเนินการต่อชุดบทความเกี่ยวกับสูตรทางคณิตศาสตร์ใน Excel วันนี้เราจะวิเคราะห์สูตรการเขียน “โมดูลใน Excel” กัน โมดูลัสของตัวเลขใช้เพื่อกำหนดค่าสัมบูรณ์ของตัวเลข เช่น ความยาวของเซกเมนต์ ด้านล่างนี้เรามีหลายวิธีในการคำนวณโมดูลัสของตัวเลขใน Excel ฟังก์ชันหลักคือ ABS และการคำนวณเพิ่มเติมโดยใช้ฟังก์ชัน IF และ SQRT

ดังต่อไปนี้จากคำจำกัดความ โมดูลัสของตัวเลขเป็นจำนวนที่ไม่เป็นลบ ซึ่งเป็นค่าของตัวเลขนั้นเอง เหล่านั้น. หากเรามีจำนวนลบ -7 ดังนั้นในโมดูลัสจะเท่ากับ 7 โมดูลัสเขียนเป็นเส้นแนวตั้งสองเส้น:

|-7| = 7

มันใช้ทำอะไร? หากเรามีค่าเวกเตอร์เท่ากับ -7 โดยที่เครื่องหมายลบหมายถึงทิศทางตรงกันข้าม เพื่อที่จะหาความยาวของเวกเตอร์ เราจำเป็นต้องคำนวณค่าสัมบูรณ์ของตัวเลข (เนื่องจากความยาวไม่สามารถเป็นค่าลบได้ ).

บ่อยครั้งที่การใช้โมดูลสามารถพบได้เมื่อคำนวณค่าเวลาติดลบ แต่เรามีบทความแยกต่างหากเกี่ยวกับเรื่องนี้

คำนวณโมดูลัสใน Excel, ฟังก์ชัน ABS

ในภาษาการเขียนโปรแกรมส่วนใหญ่ โมดูลัสของตัวเลขจะพบได้จากฟังก์ชัน ABS (จากค่าสัมบูรณ์ หน้าท้อง olute) Excel อันเป็นที่รักของเราก็ไม่มีข้อยกเว้น

ป้อนสูตรในเซลล์:

จากคำอธิบายฟังก์ชันนี้ ค่าของสูตรดังกล่าวจะเท่ากับ 7

วิธีการคำนวณโมดูลโดยใช้ IF ซึ่งเป็นวิธีอื่น

โดยพื้นฐานแล้ว การทำงานของฟังก์ชันโมดูลัสคือการพิจารณาว่าตัวเลขนั้นเป็นลบหรือไม่และส่งผ่านค่าของมัน นั่นคือฟังก์ชันเงื่อนไขหลัก =IF() นั้นง่ายต่อการจัดการ


มาโคร (ขั้นตอน VBA) (63)
เบ็ดเตล็ด (39)
ข้อบกพร่องและข้อบกพร่องของ Excel (4)

โมดูลคืออะไร? มีโมดูลประเภทใดบ้าง?

รหัส VBA ทั้งหมดจะต้องถูกเก็บไว้ที่ไหนสักแห่ง ในการจัดเก็บรหัสใน VBA จะใช้โมดูลซึ่งจัดเก็บไว้ในสมุดงาน หนังสือสามารถมีโมดูลได้มากเท่าที่คุณต้องการ แต่ละโมดูลสามารถมีหลายขั้นตอน (มาโคร) ได้
สามารถดูโมดูลทั้งหมดที่มีอยู่ในหนังสือได้ผ่านโปรแกรมแก้ไข VBA ( Alt+F11- โมดูลที่มีอยู่จะแสดงทางด้านซ้ายของตัวแก้ไขใน Project Explorer
รูปที่ 1
ตัวสำรวจวัตถุอาจไม่แสดงตามค่าเริ่มต้น จากนั้นจะต้องแสดง: คลิก Ctrl+หรือในเมนูตัวแก้ไข VBA- ดู-โครงการสำรวจ

โมดูลแบ่งออกเป็นห้าประเภทหลัก:

โดยทั่วไปเพื่อให้แม่นยำยิ่งขึ้นโมดูลมีเพียงสองประเภทเท่านั้น - โมดูลปกติและคลาสเนื่องจาก โมดูลแผ่นงาน, โมดูลหนังสือ, โมดูลแบบฟอร์มที่กำหนดเองและ โมดูลคลาสโดยพื้นฐานแล้วเป็นโมดูลคลาส แต่ฉันแบ่งมันออกเป็นหลายประเภทโดยเฉพาะเพราะ... ประเภทเหล่านี้มักใช้สำหรับการอธิบายในตำราเรียนต่างๆ และในฟอรัมต่างๆ และในหนังสือ Excel เองก็มีลักษณะและฟังก์ชันการทำงานบางอย่างที่แตกต่างกัน

เพื่อที่จะสร้างใหม่ โมดูลมาตรฐาน, โมดูลคลาส (ClassModule)หรือ แบบฟอร์มผู้ใช้บริการ (UserForm)คุณเพียงแค่คลิกขวาในหน้าต่าง Project Explorer แล้วเลือก แทรกแล้วประเภทของวัตถุที่ถูกเพิ่ม ( โมดูล, คลาสโมดูล, แบบฟอร์มผู้ใช้- คุณยังสามารถเพิ่มโมดูลผ่านเมนู: แทรก-ประเภทโมดูล
การลบออกก็ทำได้ง่ายเช่นกัน: คลิกขวาที่โมดูลที่ต้องการในหน้าต่างโปรเจ็กต์แล้วเลือก ลบ- รายละเอียดเพิ่มเติมเกี่ยวกับการลบในตอนท้ายของบทความนี้:

โมดูลมาตรฐาน
ในรูปที่ 1 โมดูล1 .
ประเภทโมดูลที่พบบ่อยที่สุดที่ใช้ในกรณีส่วนใหญ่ มันอยู่ในนั้นที่เครื่องบันทึกแมโครสร้างมาโครที่บันทึกไว้ รหัสและขั้นตอนทั้งหมดในโมดูลดังกล่าวเขียนขึ้นด้วยตนเองหรือคัดลอกจากแหล่งอื่น (โมดูลอื่นจากไซต์นี้ ฯลฯ ) โดยพื้นฐานแล้ว รหัสส่วนใหญ่อยู่ในโมดูลมาตรฐาน ได้รับการออกแบบมาเพื่อจัดเก็บขั้นตอนหลักและตัวแปรสาธารณะ ซึ่งสามารถเข้าถึงได้ในภายหลังจากโมดูลใดๆ วิธีสร้างโมดูลมาตรฐาน: ในหน้าต่าง object explorer คลิกขวา - แทรก-โมดูล- เมื่อบันทึกด้วยเครื่องบันทึกมาโคร โมดูลจะถูกสร้างขึ้นและตั้งชื่อโดยอัตโนมัติ
รหัสจำนวนมากที่เผยแพร่ในบทความบนเว็บไซต์จะต้องอยู่ในโมดูลมาตรฐาน ในการดำเนินการนี้ เพียงสร้างโมดูลมาตรฐานใหม่ คัดลอกข้อความโค้ดจากไซต์แล้ววาง

โมดูลแผ่นงาน
Sheet1 หรือ Sheet1 - ในรูปที่ 1: แผ่นที่ 1(แผ่นที่ 1) แผ่นที่ 2(แผ่นที่ 2) แผ่นที่ 3(แผ่นที่ 3).
หนังสือแต่ละแผ่นมีโมดูลแยกกัน การเข้าสู่โมดูลชีตนั้นง่ายกว่าการเข้าสู่โมดูลอื่นๆ ในการดำเนินการนี้เพียงคลิกขวาที่ทางลัดของแผ่นงานแล้วเลือกรายการจากเมนูบริบท ข้อความต้นฉบับ (ดูโค้ด)
ขึ้นอยู่กับเวอร์ชันของ Excel รายการในภาษารัสเซียนี้อาจมีชื่อเดียวกัน: ดูโค้ดหรือ แหล่งที่มา :

คุณสามารถใช้เส้นทางที่ยากขึ้นได้ - ผ่านโปรแกรมแก้ไข VBA: Alt+F11และในหน้าต่าง Project Explorer ดับเบิลคลิกที่วัตถุที่มีชื่อชีตหรือคลิกขวาที่โมดูลชีต - ดูโค้ด.
เมื่อวางโค้ดในโมดูลชีต คุณควรจำไว้ว่าเมื่อคัดลอกหรือถ่ายโอนชีตนี้ไปยังสมุดงานอื่น รหัสก็จะถูกคัดลอกด้วยเพราะ เป็นส่วนหนึ่งของใบ นี่เป็นทั้งบวกและลบในเวลาเดียวกัน ข้อดีก็คือเมื่อวางโค้ดลงในโมดูลชีต คุณจะสามารถใช้ชีตนี้เป็นเทมเพลตสำหรับการแจกจ่ายด้วยปุ่มของคุณเองสำหรับการเรียกโค้ดเหล่านี้ (รวมถึงการสร้างหนังสือด้วยโค้ด) และฟังก์ชันทั้งหมดจะพร้อมใช้งาน ข้อเสียคือความแตกต่างบางประการในการเข้าถึงเซลล์ (รายละเอียดเพิ่มเติมสามารถพบได้ในบทความนี้: วิธีเข้าถึงช่วงจาก VBA) และความจำเป็นในการวางขั้นตอนที่ใช้ทั้งหมดไว้ในชีตนี้ มิฉะนั้นรหัสอาจทำงานกับข้อผิดพลาดเมื่อโอนไปยังสมุดงานอื่น .

โมดูลแผ่นงานมีขั้นตอนเหตุการณ์ในตัว ซึ่งแต่ละขั้นตอนมีหน้าที่รับผิดชอบในการจัดการเหตุการณ์เฉพาะบนแผ่นงานนั้น คุณสามารถดูได้ดังนี้: เลือกวัตถุ (ในภาพด้านล่างรายการอยู่ด้านซ้าย)แผ่นงาน และเลือกเหตุการณ์ในรายการที่ถูกต้อง (รายการนี้มีขั้นตอนทั้งหมดสำหรับแผ่นงานที่เลือก):


ขั้นตอนที่ใช้กิจกรรมอยู่แล้วจะถูกเน้นด้วยตัวหนา

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

  • เปิดใช้งาน- เกิดขึ้นเมื่อเปิดใช้งานแผ่นงานเอง (แต่จะไม่เกิดขึ้นหากมีการเปลี่ยนจากสมุดงานหนึ่งไปยังอีกสมุดงานหนึ่งและแผ่นงานนี้ทำงานอยู่ที่นั่น)
  • ก่อนดับเบิ้ลคลิก- เกิดขึ้นเมื่อคุณดับเบิลคลิกที่เซลล์ใดๆ ของชีต สิ่งสำคัญคือต้องใส่ใจกับข้อโต้แย้งที่ส่งผ่าน: เป้าหมายและยกเลิก เป้าหมาย - ลิงก์ไปยังเซลล์ที่มีการดำเนินการ ยกเลิก - รับผิดชอบในการยกเลิกโหมดแก้ไข
  • ก่อนคลิกขวา- เกิดขึ้นเมื่อคุณคลิกขวาที่เซลล์ใดก็ได้ของแผ่นงาน สิ่งสำคัญคือต้องใส่ใจกับข้อโต้แย้งที่ส่งผ่าน: เป้าหมายและยกเลิก เป้าหมาย - ลิงก์ไปยังเซลล์ที่มีการดำเนินการ ยกเลิก - รับผิดชอบในการยกเลิกการแสดงเมนูป๊อปอัป
  • คำนวณ- เกิดขึ้นเมื่อคำนวณฟังก์ชันและสูตรใหม่บนแผ่นงาน
  • เปลี่ยน- เกิดขึ้นเมื่อค่าของเซลล์บนชีตเปลี่ยนแปลง สิ่งสำคัญคือต้องใส่ใจกับอาร์กิวเมนต์ Target ที่ถูกส่งผ่าน เป้าหมาย - การอ้างอิงไปยังเซลล์ที่มีการเปลี่ยนแปลง อาจแตกต่างจากเซลล์ที่ใช้งานอยู่ในขณะที่ประมวลผล
  • ปิดการใช้งาน- เกิดขึ้นเมื่อย้ายจากแผ่นงานนี้ไปยังแผ่นงานอื่นของสมุดงานเดียวกัน
  • ติดตามไฮเปอร์ลิงก์- เกิดขึ้นเมื่อติดตามไฮเปอร์ลิงก์ที่สร้างในชีตนี้
  • การเปลี่ยนแปลงการเลือก- เกิดขึ้นเมื่อที่อยู่ของเซลล์/พื้นที่ที่เลือกเปลี่ยนแปลง สิ่งสำคัญคือต้องใส่ใจกับอาร์กิวเมนต์ Target ที่ถูกส่งผ่าน เป้าหมาย - การอ้างอิงถึงช่วงของเซลล์ที่เลือก จับคู่เซลล์ที่เลือกในปัจจุบัน

ค่อนข้างเป็นจุดสำคัญ:หากคุณต้องการทำความคุ้นเคยกับโพรซีเดอร์เหตุการณ์มากขึ้น ให้ใส่ใจกับตัวแปรที่ถูกส่งผ่านเป็นอาร์กิวเมนต์ของโพรซีเดอร์เสมอ ในกรณีส่วนใหญ่ ฉันขอแนะนำให้ใช้ตัวแปรเหล่านี้แทนที่จะคิดค้นความเป็นไปได้ทุกประเภทในการคำนวณวัตถุที่ทำให้เกิดเหตุการณ์นี้ สำหรับกิจกรรมแผ่นงาน แผ่นงาน_การเปลี่ยนแปลงนี่คือตัวแปร เป้า- ตามตัวอย่าง วางโค้ดด้านล่างลงในโมดูลชีตใดๆ:

แผ่นงานย่อยส่วนตัว_เปลี่ยน (ByVal เป้าหมายตามช่วง) MsgBox "ที่อยู่เซลล์ที่แก้ไข: "& เป้าหมาย. ที่อยู่ & _ "; ที่อยู่เซลล์ที่ใช้งานอยู่: "& Selection.Address, vbInformation, "www.site" สิ้นสุดหมวดย่อย

Private Sub Worksheet_Change (ByVal Target As Range) MsgBox "เปลี่ยนที่อยู่ของเซลล์: " & Target.Address & _ "; ที่อยู่เซลล์ที่ใช้งานอยู่: " & Selection.Address, vbInformation, "www.site" End Sub

หลังจากนั้นให้เขียนค่า 5 ในเซลล์ A1 แล้วกด Enter เหตุการณ์การเปลี่ยนแปลงจะเริ่มทำงานเมื่อการแก้ไขเสร็จสิ้น เช่น ทันทีที่คุณกด Enter ในกรณีนี้ จะมีการเปลี่ยนไปยังเซลล์ A2 (ในกรณีส่วนใหญ่ เว้นแต่จะระบุไว้เป็นอย่างอื่นในการตั้งค่า) และข้อความจะปรากฏขึ้นเพื่อแสดงว่าเซลล์ A1 มีการเปลี่ยนแปลง และตอนนี้ A2 ถูกเลือกแล้ว เหล่านั้น. เป้าหมายจะเป็นลิงก์ไปยังเซลล์ที่เปลี่ยนแปลงเสมอ โดยไม่คำนึงถึงเซลล์ที่เลือกอยู่ในปัจจุบัน เหตุการณ์นี้ (Worksheet_Change) จะไม่เกิดขึ้นเมื่อค่าของเซลล์ที่มีสูตรเปลี่ยนแปลง ป้อนข้อมูลด้วยตนเองเท่านั้น

บันทึก: สำหรับรหัสทั้งหมดที่ให้ไว้บนเว็บไซต์ คุณเพียงแค่ต้องเปิดโมดูลที่ต้องการ (หนังสือหรือแผ่นงาน)และวางรหัสที่แนะนำ การปรับเปลี่ยนอาจจำเป็นเฉพาะในกรณีที่โมดูลชีตหรือสมุดงานในไฟล์ของคุณมีรหัสอยู่แล้วในขั้นตอนเหตุการณ์ที่จำเป็น

โมดูลหนังสือ
ThisBook หรือ ThisWorkbook - ในรูปที่ 1: หนังสือเล่มนี้ .
โมดูลหนังสือสามารถเข้าถึงได้ผ่าน Project Explorer ของโปรแกรมแก้ไข VBA เท่านั้น - ดับเบิลคลิก หนังสือเล่มนี้ (หนังสือเล่มนี้)หรือปุ่มเมาส์ขวาบนโมดูล - ดูโค้ด- โมดูลหนังสือยังมีขั้นตอนเหตุการณ์ "ในตัว" เช่นเดียวกับแผ่นงาน ให้เลือกจากรายการวัตถุ (ซ้ายบน) สมุดงาน- ในหน้าต่างด้านขวาสำหรับการเลือกขั้นตอน เช่นเดียวกับโมดูลชีต จะมีขั้นตอนทั้งหมดสำหรับออบเจ็กต์ หนังสือเล่มนี้- ตัวอย่างของการใช้ขั้นตอนกิจกรรมหนังสือสามารถพบได้ในบทความวิธีติดตามเหตุการณ์ (เช่น การเลือกเซลล์) ในหนังสือเล่มใด ๆ
แต่มีกฎเดียวกันทั้งหมดที่ใช้ - สิ่งสำคัญคืออย่าลืมเกี่ยวกับข้อโต้แย้งที่มีอยู่ในขั้นตอนเหล่านี้และส่งผ่านไปยังพวกเขาโดย Excel เอง ตัวอย่างเช่น อาร์กิวเมนต์ Cancel จะพร้อมใช้งานสำหรับเหตุการณ์ Workbook_BeforeClose สามารถใช้ได้ถ้าคุณไม่ต้องการให้ผู้ใช้ปิดเวิร์กบุ๊กโดยไม่ต้องกรอกเซลล์ A1 นี่คือตัวอย่างของรหัสดังกล่าว:

Private Sub Workbook_BeforeClose(Cancel As Boolean) If Me.Sheets("Report").Range("A1").Value = "" จากนั้น MsgBox "คุณต้องกรอกเซลล์ A1 บนแผ่นงาน "รายงาน"", vbCritical, "www .site" Cancel = True "ยกเลิกการปิดหนังสือ End If End Sub

จากโค้ดคุณจะเห็นว่าในแผ่นงาน "รายงาน" จะต้องมีเซลล์ที่ไม่ว่างเปล่า A1 (ต้องมีแผ่นงาน "รายงาน" ในสมุดงานนี้ด้วย) แต่มีอีกสิ่งหนึ่ง - บางอย่าง ฉัน- นี่เป็นการเรียกออบเจ็กต์โมดูลคลาสแบบสั้น ในกรณีนี้จะเทียบเท่ากับการเรียก ThisWorkbook และอีกตัวอย่างหนึ่งของโค้ดสำหรับโมดูล ThisBook ซึ่งห้ามไม่ให้บันทึกหนังสือต้นฉบับให้บันทึกผ่านรายการเท่านั้น บันทึกเป็น:

Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, Cancel As Boolean) ถ้า SaveAsUI = False จากนั้น "ใช้ MsgBox บันทึกแบบง่าย" สมุดงานนี้เป็นเทมเพลต คุณสามารถบันทึกได้เฉพาะผ่านบันทึกเป็น", vbCritical, "www.site" Cancel = True "ยกเลิกการบันทึกหนังสือ End If End Sub

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

โมดูลแบบฟอร์ม
แบบฟอร์มผู้ใช้ - ในรูปที่ 1 แบบฟอร์มผู้ใช้1 .
มีอยู่ภายใน UserForm และวัตถุของมัน ในแบบฟอร์มผู้ใช้ โดยพื้นฐานแล้ว ทุกอย่างจะเชื่อมโยงกับขั้นตอนกิจกรรมของแบบฟอร์มและองค์ประกอบของแบบฟอร์มนี้อย่างแม่นยำ (ปุ่ม กล่องข้อความ ComboBoxes (รายการแบบเลื่อนลง) ฯลฯ) การใช้แบบฟอร์มผู้ใช้ในแอปพลิเคชันของคุณเพื่อสื่อสารกับผู้ใช้นั้นสะดวกมาก เพราะ การติดตามการกระทำของผู้ใช้สะดวกมากผ่านแบบฟอร์มและคุณสามารถปฏิเสธการเข้าถึงชีตที่มีข้อมูลได้โดยการซ่อนข้อมูลเหล่านั้น แบบฟอร์มถูกสร้างขึ้นในลักษณะเดียวกับโมดูล: ในหน้าต่าง object explorer คลิกขวา - แทรก-แบบฟอร์มผู้ใช้- ตัวอย่างของรหัสที่ใช้แบบฟอร์มสามารถพบได้ในบทความ: ผู้ใช้แต่ละคนมีชีต/ช่วงของตนเอง จะทิ้งเฉพาะตัวเลขหรือข้อความไว้ในเซลล์ได้อย่างไร

โมดูลคลาส
ClassModule - ในรูปที่ 1 คลาส 1 .
ในกรณีส่วนใหญ่ จะถูกสร้างขึ้นโดยเฉพาะเพื่อติดตามเหตุการณ์ของออบเจ็กต์ต่างๆ ไม่น่าเป็นไปได้ที่ผู้เริ่มต้นจะต้องเรียนรู้ VBA แม้ว่าทั้งหมดจะขึ้นอยู่กับงานที่ทำอยู่ก็ตาม แต่โดยปกติแล้ว ผู้เริ่มต้นพบว่าการเรียนรู้ยากเกินไป ไม่ว่าในกรณีใด ก่อนที่จะทำงานกับโมดูลคลาส ควรเรียนรู้วิธีการทำงานอย่างน้อยเล็กน้อยกับโมดูลปกติและเขียนขั้นตอนด้วยตัวเอง วิธีเพิ่มโมดูลดังกล่าว: ในหน้าต่าง object explorer คลิกขวา - แทรก-โมดูลคลาส- คุณสามารถอ่านเพิ่มเติมเกี่ยวกับโมดูลคลาสและการทำงานร่วมกับโมดูลเหล่านั้นได้ในบทความนี้: การทำงานกับโมดูลคลาส มีการอธิบายหลักการพื้นฐานทั้งหมดไว้ที่นี่และมีไฟล์ตัวอย่างแนบมาด้วย

การถอดโมดูล
ขั้นตอนในการถอดโมดูลใดๆ จะเหมือนกันสำหรับทุกประเภท ในการทำเช่นนี้คุณต้องไปที่โครงการ VBA ของหนังสือที่ต้องการเลือกโมดูลที่ต้องการคลิกขวาแล้วเลือกจากเมนูที่ปรากฏขึ้น ลบ (ชื่อโมดูล)...(ลบ Module1, ลบ UserForm1, ลบ Class1 ฯลฯ) หลังจากนี้ หน้าต่างจะปรากฏขึ้นถามว่า “คุณต้องการส่งออก (ชื่อโมดูล) ก่อนที่จะลบออกหรือไม่” ซึ่งหมายความว่า VBA ถามว่า: คุณต้องการเก็บสำเนาโค้ดของโมดูลก่อนที่จะลบหรือไม่ ตามกฎแล้วคุณควรเลือก เลขที่- แต่ถ้าคุณต้องการบันทึกข้อความของรหัสจากโมดูลที่ถูกลบออกเป็นไฟล์แยกต่างหาก ให้ยอมรับโดยคลิกใช่ คุณจะได้รับแจ้งให้เลือกโฟลเดอร์ที่จะบันทึกโมดูล และคุณสามารถตั้งชื่อแยกต่างหากได้

โมดูลการโอน นำเข้า และส่งออก
บางครั้งคุณจำเป็นต้องย้ายโมดูลจากหนังสือเล่มหนึ่งไปยังอีกเล่มหนึ่ง มีหลายวิธีในการทำเช่นนี้ วิธีที่ง่ายที่สุดคือการเปิดหนังสือทั้งสองเล่มไปที่ Project Explorer - ค้นหาโมดูลที่ต้องการ - จับมันด้วยปุ่มซ้ายของเมาส์และโดยไม่ต้องปล่อยปุ่มให้ลากไปที่โปรเจ็กต์ของหนังสือเล่มอื่น:


ควรจำไว้ว่าเฉพาะโมดูลมาตรฐาน โมดูลคลาส และโมดูล UserForm เท่านั้นที่สามารถถ่ายโอนและคัดลอกด้วยวิธีนี้ รหัสของโมดูลชีตและหนังสือจะต้องถูกถ่ายโอนเป็นข้อความธรรมดา: ไปที่โมดูล ThisBook (จากที่เราต้องการคัดลอก) - คัดลอกโค้ดทั้งหมด - ไปที่โมดูล ThisBook ของหนังสือเล่มที่สองแล้ววางสิ่งที่ถูกคัดลอก : :


การส่งออกโมดูล (บันทึกเป็นไฟล์แยกต่างหาก)
หากคุณต้องการบันทึกโมดูลมาตรฐาน คลาสโมดูล หรือโมดูลฟอร์ม และไม่ถ่ายโอนไปยังสมุดงานอื่นทันที คุณสามารถส่งออกโมดูลได้ เหตุใดสิ่งนี้จึงจำเป็น? ตามกฎแล้ว หากต้องการถ่ายโอนรหัสจากบ้านไปที่ทำงาน ให้ส่งรหัสเหล่านั้นไปยังบุคคลอื่นบนพีซีเครื่องอื่น (นโยบายความปลอดภัยของ บริษัท อาจห้ามการส่งไฟล์ที่มีมาโคร) เป็นต้น ทำได้ง่ายๆ: คลิกขวาที่โมดูล - ส่งออกไฟล์.
โมดูลที่ส่งออกมีส่วนขยายที่แตกต่างกัน ขึ้นอยู่กับประเภทของโมดูล สำหรับโมดูลมาตรฐานนี่คือ .เบส(Module1.bas) สำหรับโมดูลคลาส - .cls(Class1.cls) แต่สำหรับโมดูลฟอร์ม ไฟล์สองไฟล์จะถูกสร้างขึ้น: UserForm1 .frmและ UserForm1 .frx- สิ่งสำคัญคือต้องจัดเก็บไว้ด้วยกัน - ไฟล์ที่ไม่มีอีกอันจะไม่สามารถนำเข้าเป็นไฟล์ได้ในภายหลัง ไฟล์ .frx เก็บข้อมูลเกี่ยวกับการแสดงภาพของแบบฟอร์มและองค์ประกอบต่างๆ ของแบบฟอร์ม ไฟล์ .frm จะจัดเก็บข้อความโค้ดสำหรับแบบฟอร์มและข้อมูลการบริการโดยตรง (ชื่อและขนาดของแบบฟอร์ม คำสั่งร่วมบางส่วน และลิงก์ไปยังไฟล์ .frx) ดังนั้นจึงไม่แนะนำให้เปลี่ยนชื่อไฟล์ทั้งสองนี้โดยไม่มีทักษะที่เหมาะสมโดยหวังว่าทุกอย่างจะทำงานได้ในภายหลัง
การนำเข้าโมดูล (การโอนโมดูลที่ส่งออกไปก่อนหน้านี้ไปยังหนังสือเล่มใหม่)
หากต้องการถ่ายโอนโมดูลที่ส่งออกไปยังสมุดงานอื่น คุณเพียงแค่คลิกขวาที่โปรเจ็กต์ที่ต้องการในตัวสำรวจวัตถุ - นำเข้าโมดูล- เลือกโมดูลที่ต้องการในกล่องโต้ตอบ
คุณสามารถส่งออกโมดูลใดก็ได้ แต่คุณไม่สามารถนำเข้าได้ แม้ว่าโมดูลแผ่นงานและสมุดงานจะถูกส่งออกเป็นไฟล์แยกกัน (โดยวิธีการที่มีนามสกุล .cls) แต่ก็ไม่สามารถนำเข้าในรูปแบบตามที่ต้องการได้ พวกเขาจะถูกนำเข้าเป็นโมดูลคลาสใหม่และไม่มีอะไรเพิ่มเติม ดังนั้น ในการโอนรหัสจากโมดูลแผ่นงานและสมุดงาน คุณจะยังคงต้องใช้การคัดลอกและวางรหัสด้วยตนเอง
ยิ่งไปกว่านั้น คุณยังสามารถถ่ายโอนโมดูลโดยอัตโนมัติโดยใช้โค้ด VBA: วิธีเพิ่มโค้ดโพรซีเดอร์โดยทางโปรแกรม, คัดลอกโมดูล

บทความนี้ช่วยได้หรือไม่? แชร์ลิงก์กับเพื่อนของคุณ! บทเรียนวิดีโอ

("แถบด้านล่าง":("textstyle": "static", "textpositionstatic": "bottom", "textautohide":true, "textpositionmarginstatic":0,"textpositiondynamic:"bottomleft", "textpositionmarginleft":24," textpositionmarginright":24,"textpositionmargintop":24,"textpositionmarginbottom":24,"texteffect:slide","texteffecteasingบนหน้าจอ:easeOutCubic","texteffectduration":600,"texteffectslidedirection:left,”texteffectslidedistance” :30,"texteffectdelay":500,"texteffectseparate":false,"texteffect1":slide", "text effectslidedirection1" "right", "text effectslidedistance1":120, "text effecteasing1":easeOutCubic","texteffectduration1":600 ,"texteffectdelay1":1000,"texteffect2"slide"", "text effectslidedirection2" "right" , "text effectslidedistance2":120, "text effecteasing2":easeOutCubic","text effectduration2":600,"texteffectdelay2":1500," textcss:: block; text-align:left;, "textbgcss": ซ้าย: 0px; ; พื้นหลังสี: #333333; ">"titlecss":display:บล็อก; ตำแหน่ง:ญาติ; แบบอักษร:ตัวหนา 14px \"Lucida Sans Unicode\",\"Lucida Grande\",sans-serif,Arial; สี:#fff;"descriptioncss":display:block; ตำแหน่ง:ญาติ; แบบอักษร:12px \"Lucida Sans Unicode\",\"Lucida Grande\",sans-serif,Arial; สี:#fff; ขอบบน:8px;"buttoncss":display:block; ตำแหน่ง:ญาติ; Margin-top:8px;","texteffectresponsive":true,"texteffectresponsivesize":640,"titlecssresponsive":"font-size:12px;", "descriptioncssresponsive": "display: none !important;", "buttoncssresponsive": "", "addgooglefonts":false,"googlefonts:", "textleftrightpercentforstatic":40))