2
ตัวตรวจสอบข้อมูล MS Excel ไม่ยอมรับการเรียกไปยังแมโครที่กำหนดเอง
ฉันมีมาโคร VB ที่ทำงานซึ่งตรวจสอบความถูกต้องของเนื้อหา ใช้พารามิเตอร์สตริงสองตัว (ค่าเซลล์และนิพจน์ทั่วไป) และส่งคืนค่าจริงหรือเท็จ มันใช้ CreateObject("VBscript.regexp") ภายใน ฉันต้องใช้แมโครนี้เพื่อตรวจสอบเซลล์ เมื่อฉันพยายามตั้งค่ามันเป็นเครื่องมือตรวจสอบที่กำหนดเองวิธี =Rex(E2, "\d{1,2}\:\d{2}") โดยที่ Rex เป็นฟังก์ชันของฉันที่กำหนดไว้ในกระดาษคำนวณเดียวกัน (Alt-F11 และประเภท) และ E2 เป็นเซลล์ที่ฉันพยายามตรวจสอบฉันได้รับข้อความ "ไม่พบช่วงที่ตั้งชื่อที่คุณระบุ" ถ้าฉันแทรกฟังก์ชั่นเดียวกันที่อื่นในสเปรดชีตเดียวกัน (พูดที่เซลล์มุมบน A1): =Rex(E2, "\d{1,2}\:\d{2}") มันแสดงให้ฉันเห็นอย่างชัดเจน TRUE ถ้าเซลล์ E2 แก้ไขค่าที่ถูกต้องเช่น 15:07 และ FALSE ถ้าไม่ชอบ 15xx - ครึ่งหนึ่งได้รับการแก้ไข แต่ยังไม่ถึงจุดสิ้นสุด ฉันต้องรวมเครื่องมือตรวจสอบความถูกต้องของฉันด้วยวิธีมาตรฐาน ฉันใช้ MS Excel 2010 แมโครตัวเองคือ Public Function Rex(ByVal vsStringIn …