ฉันกำลังสร้างไลบรารีคลาสโดยใช้ C# ที่จะใช้จาก VBA แต่มีสิ่งหนึ่งที่ทำให้ฉันท้อใจ - เมื่อฉันลบหรือเปลี่ยนตัวอักษรบางตัวในชื่อเมธอดและพยายามคอมไพล์โปรเจ็กต์ vba ฉันจะไม่ได้รับข้อผิดพลาด แต่ฉันต้องการได้รับข้อความแสดงข้อผิดพลาดในการคอมไพล์หากฉันพบว่ามันเกิดขึ้นเนื่องจากการใช้การรวมล่าช้า
ฉันจะพยายามอธิบาย
เป็นลายเซ็นที่ถูกต้อง:
Sub Test() Dim cls as New SomeClass cls.SomeMethod End Sub
เป็นลายเซ็นที่มีการสะกดผิด:
Sub Test() Dim cls as New SomeClass cls.**SomeMetod** End Sub
กดคอมไพล์โครงการ VBA - ทุกอย่างโอเค แต่ไม่ควรเป็นเช่นนั้น
ฉันได้เปลี่ยนอินเทอร์เฟซพื้นฐานตามที่แสดงด้านล่าง:
[Guid("Some GUID here"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IComInterface
{}
และคลาสพื้นฐาน:
[ClassInterface(ClassInterfaceType.None)]
public class BaseClass
แต่ไม่มีอะไรเกิดขึ้น!!! ฉันได้รับข้อผิดพลาดขณะรันไทม์เท่านั้น