ตัวดำเนินการ VBA และฟังก์ชันในตัว

คำสั่ง Excel VBA

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

ตัวดำเนินการทางคณิตศาสตร์

ตัวดำเนินการคณิตศาสตร์ VBA หลักแสดงอยู่ในตารางด้านล่าง

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

ผู้ประกอบการการกระทำลำดับความสำคัญ

(1 – สูงสุด 5 – ต่ำสุด)

^ตัวดำเนินการยกกำลัง1
*ตัวดำเนินการคูณ2
/ผู้ดำเนินการแผนก2
การหารโดยไม่มีเศษเหลือ – ส่งกลับผลลัพธ์ของการหารตัวเลขสองตัวโดยไม่มีเศษเหลือ ตัวอย่างเช่น, 74 จะส่งคืนผลลัพธ์ 13
ความกล้าหาญโมดูโลโอเปอเรเตอร์ (ส่วนที่เหลือ) – คืนค่าส่วนที่เหลือหลังจากหารตัวเลขสองตัว ตัวอย่างเช่น, 8 ต่อ 3 จะส่งคืนผลลัพธ์ 2.4
+ตัวดำเนินการเพิ่มเติม5
-ตัวดำเนินการลบ5

ตัวดำเนินการสตริง

ตัวดำเนินการสตริงพื้นฐานใน Excel VBA คือตัวดำเนินการต่อ & (ผสาน):

ผู้ประกอบการการกระทำ
&ตัวดำเนินการต่อ ตัวอย่างเช่น นิพจน์ «A» & «B» จะส่งคืนผลลัพธ์ AB.

ตัวดำเนินการเปรียบเทียบ

ตัวดำเนินการเปรียบเทียบใช้เพื่อเปรียบเทียบตัวเลขหรือสตริงสองตัวและคืนค่าบูลีนของ type บูลีน (จริงหรือเท็จ). ตัวดำเนินการเปรียบเทียบ Excel VBA หลักแสดงอยู่ในตารางนี้:

ผู้ประกอบการการกระทำ
=พอ ๆ กัน
<>ไม่เท่ากับ
<น้อยกว่า
>Больше
<=น้อยกว่าหรือเท่ากับ
>=มากกว่าหรือเท่ากับ

ดำเนินการทางตรรกะ

ตัวดำเนินการเชิงตรรกะ เช่น ตัวดำเนินการเปรียบเทียบ จะคืนค่าบูลีนของ type บูลีน (จริงหรือเท็จ). ตัวดำเนินการตรรกะหลักของ Excel VBA แสดงอยู่ในตารางด้านล่าง:

ผู้ประกอบการการกระทำ
และการดำเนินการร่วม, ตัวดำเนินการตรรกะ И. ตัวอย่างเช่น นิพจน์ เอ แอนด์ บี จะกลับมา จริงถ้า A и B เท่ากันทั้งคู่ จริงมิฉะนั้นกลับ เท็จ.
Orการดำเนินการแยกตัวดำเนินการเชิงตรรกะ OR. ตัวอย่างเช่น นิพจน์ เอ ออร์ บี จะกลับมา จริงถ้า A or B มีค่าเท่ากัน จริงและจะกลับมา เท็จถ้า A и B เท่ากันทั้งคู่ เท็จ.
ไม่การดำเนินการปฏิเสธตัวดำเนินการตรรกะ ไม่. ตัวอย่างเช่น นิพจน์ ไม่ใช่เอ จะกลับมา จริงถ้า A พอ ๆ กัน เท็จ, หรือ ส่งคืน เท็จถ้า A พอ ๆ กัน จริง.

ตารางด้านบนไม่ได้แสดงรายการตัวดำเนินการทางตรรกะทั้งหมดที่มีอยู่ใน VBA รายการทั้งหมดของตัวดำเนินการทางลอจิคัลสามารถดูได้ที่ Visual Basic Developer Center

ฟังก์ชั่นในตัว

มีฟังก์ชันในตัวมากมายใน VBA ที่สามารถใช้เมื่อเขียนโค้ด รายการด้านล่างเป็นรายการที่ใช้บ่อยที่สุด:

ฟังก์ชันการกระทำ
absส่งกลับค่าสัมบูรณ์ของตัวเลขที่ระบุ

ตัวอย่าง:

  • หน้าท้อง(-20) ส่งกลับค่า 20;
  • หน้าท้อง(20) ส่งกลับค่า 20
Chrส่งกลับอักขระ ANSI ที่สอดคล้องกับค่าตัวเลขของพารามิเตอร์

ตัวอย่าง:

  • คริส(10) ส่งคืนตัวแบ่งบรรทัด
  • คริส(97) ส่งคืนอักขระ a.
วันที่ส่งกลับวันที่ของระบบปัจจุบัน
วันที่เพิ่มเพิ่มช่วงเวลาที่ระบุในวันที่ที่กำหนด ไวยากรณ์ของฟังก์ชัน:

DateAdd(интервал, число, дата)

ข้อโต้แย้งอยู่ที่ไหน ระยะห่าง กำหนดประเภทของช่วงเวลาที่เพิ่มให้กับที่กำหนด ข้อมูล ตามจำนวนที่ระบุในอาร์กิวเมนต์ จำนวน.

ข้อโต้แย้ง ระยะห่าง สามารถรับค่าใดค่าหนึ่งต่อไปนี้:

ระยะห่างความคุ้มค่า
ปปปปปี
qย่าน
mเดือน
yวันของปี
dวัน
wวันของสัปดาห์
wwสัปดาห์
hชั่วโมง
nนาที
sที่สอง

ตัวอย่าง:

  • วันที่เพิ่ม(«d», 32, «01/01/2015 ») เพิ่ม 32 วันถึงวันที่ 01/01/2015 แล้วจึงส่งกลับวันที่ 02/02/2015
  • DateAdd(«ww», 36, «01/01/2015 ») เพิ่ม 36 สัปดาห์ถึงวันที่ 01/01/2015 และส่งคืนวันที่ 09/09/2015
วันที่แตกต่างคำนวณจำนวนช่วงเวลาที่ระบุระหว่างวันที่กำหนดสองวัน

ตัวอย่าง:

  • DateDiff(«d», «01/01/2015», «02/02/2015») คำนวณจำนวนวันระหว่าง 01/01/2015 ถึง 02/02/2015 ส่งคืน 32
  • DateDiff(«ww», «01/01/2015», «03/03/2016») คำนวณจำนวนสัปดาห์ระหว่าง 01/01/2015 ถึง 03/03/2016 ส่งคืน 61
วันส่งกลับจำนวนเต็มที่ตรงกับวันของเดือนในวันที่ที่กำหนด

ตัวอย่าง: วัน(«29/01/2015») ส่งคืนหมายเลข 29

ชั่วโมงส่งกลับจำนวนเต็มที่สอดคล้องกับจำนวนชั่วโมง ณ เวลาที่กำหนด

ตัวอย่าง: ชั่วโมง(«22:45:00») ส่งคืนหมายเลข 22

ในStrใช้จำนวนเต็มและสองสตริงเป็นอาร์กิวเมนต์ ส่งคืนตำแหน่งที่เกิดของสตริงที่สองภายในสตริงแรก โดยเริ่มต้นการค้นหาที่ตำแหน่งที่กำหนดโดยจำนวนเต็ม

ตัวอย่าง:

  • InStr(1, “นี่คือคำค้นหา”, “คำ”) ส่งคืนหมายเลข 13
  • InStr(14, “นี่คือคำค้นหา และนี่คือคำค้นหาอื่น”, “คำ”) ส่งคืนหมายเลข 38

หมายเหตุ ไม่สามารถระบุอาร์กิวเมนต์ number ได้ ซึ่งในกรณีนี้การค้นหาจะเริ่มต้นจากอักขระตัวแรกของสตริงที่ระบุในอาร์กิวเมนต์ที่สองของฟังก์ชัน

Intส่งกลับส่วนจำนวนเต็มของตัวเลขที่กำหนด

ตัวอย่าง: อินท์(5.79) ส่งกลับผลลัพธ์ 5.

อิสดาเตะคืนสินค้า จริงถ้าค่าที่กำหนดเป็นวันที่หรือ เท็จ - ถ้าไม่ใช่วันที่

ตัวอย่าง:

  • IsDate(«01/01/2015») รับคืน จริง;
  • วันที่ (100) รับคืน เท็จ.
มีข้อผิดพลาดคืนสินค้า จริงถ้าค่าที่กำหนดเป็นข้อผิดพลาดหรือ เท็จ - ถ้าไม่ผิดพลาด
ที่ขาดหายไปชื่อของอาร์กิวเมนต์ขั้นตอนทางเลือกจะถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน ที่ขาดหายไป รับคืน จริงหากไม่มีการส่งค่าสำหรับอาร์กิวเมนต์ขั้นตอนที่เป็นปัญหา
เป็นตัวเลขคืนสินค้า จริงถ้าค่าที่กำหนดสามารถถือเป็นตัวเลขได้ มิฉะนั้นจะคืนค่า เท็จ.
ซ้ายส่งกลับจำนวนอักขระที่ระบุจากจุดเริ่มต้นของสตริงที่กำหนด ไวยากรณ์ของฟังก์ชันมีลักษณะดังนี้:

Left(строка, длина)

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

ตัวอย่าง:

  • ซ้าย(“abvgdejziklmn”, 4) ส่งคืนสตริง “abcg”;
  • ซ้าย(“abvgdejziklmn”, 1) ส่งกลับสตริง "a"
Lenส่งกลับจำนวนอักขระในสตริง

ตัวอย่าง: เลน("abcdej") ส่งคืนหมายเลข 7

เดือนส่งกลับจำนวนเต็มที่ตรงกับเดือนของวันที่ที่กำหนด

ตัวอย่าง: เดือน(«29/01/2015») ส่งกลับค่า 1

ปานกลางส่งกลับจำนวนอักขระที่ระบุจากตรงกลางของสตริงที่กำหนด ไวยากรณ์ของฟังก์ชัน:

กลาง (เส้น, เริ่มต้น, ความยาว)

ที่ไหน เส้น เป็นสตริงเดิม เริ่มต้น – ตำแหน่งของจุดเริ่มต้นของสตริงที่จะแยก ความยาว คือจำนวนอักขระที่จะดึงออกมา

ตัวอย่าง:

  • กลาง(“abvgdejziklmn”, 4, 5) ส่งคืนสตริง "where";
  • กลาง(“abvgdejziklmn”, 10, 2) ส่งกลับสตริง "cl"
นาทีส่งกลับจำนวนเต็มที่สอดคล้องกับจำนวนนาทีในเวลาที่กำหนด ตัวอย่าง: นาที(«22:45:15») ส่งกลับค่า 45
ส่งกลับวันที่และเวลาของระบบปัจจุบัน
ขวาส่งกลับจำนวนอักขระที่ระบุจากจุดสิ้นสุดของสตริงที่กำหนด ไวยากรณ์ของฟังก์ชัน:

ถูกต้อง(เส้น, ความยาว)

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

ตัวอย่าง:

  • ขวา(«abvgdezhziklmn», 4) ส่งคืนสตริง "clmn";
  • ขวา(«abvgdezhziklmn», 1) ส่งกลับสตริง "n"
ที่สองส่งกลับจำนวนเต็มที่สอดคล้องกับจำนวนวินาทีในเวลาที่กำหนด

ตัวอย่าง: วินาที(«22:45:15») ส่งกลับค่า 15

ตรส่งกลับค่ารากที่สองของค่าตัวเลขที่ส่งผ่านในอาร์กิวเมนต์

ตัวอย่าง:

  • ตร.ม.(4) ส่งกลับค่า 2;
  • ตร.ม.(16) ส่งกลับค่า 4
เวลาส่งกลับเวลาของระบบปัจจุบัน
อูบาวด์ส่งกลับตัวยกของมิติอาร์เรย์ที่ระบุ

หมายเหตุ สำหรับอาร์เรย์หลายมิติ อาร์กิวเมนต์ที่เป็นทางเลือกอาจเป็นดัชนีของมิติที่จะส่งคืน หากไม่ได้ระบุไว้ ค่าเริ่มต้นคือ 1

ปีส่งกลับจำนวนเต็มที่สอดคล้องกับปีของวันที่ที่กำหนด ตัวอย่าง: ปี(«29/01/2015») ส่งกลับค่า 2015

รายการนี้รวมเฉพาะฟังก์ชัน Excel Visual Basic ในตัวที่ใช้บ่อยที่สุดเท่านั้น รายการฟังก์ชัน VBA ที่ครบถ้วนสำหรับใช้ในแมโคร Excel สามารถพบได้ใน Visual Basic Developer Center

เขียนความเห็น