Libre Calc跨库实例化类报错:Object not accessible/无效对象引用
解决Libre Calc中跨库实例化类时的“Object not accessible”错误
问题原因
LibreOffice Basic的自定义类默认是库内私有可见性,哪怕外部库已经引用了目标库,也无法直接实例化该类,但可以调用库内的公共模块方法(比如你能正常调用的test1)。
解决步骤
1. 修改类的可见性为公共
打开ClassLib库的TestClass类编辑器,在类声明开头添加Public关键字,确保类能被外部库访问:
Public Class TestClass ' 类的成员变量、方法等内容 Public Sub New() ' 如果有构造方法,也要确保是Public End Sub End Class
修改完成后保存ClassLib库,关闭并重新打开Libre Calc。
2. 确认目标库已被正确引用
在Standard库的宏编辑器中:
- 点击顶部菜单栏「工具」→「库」→「库管理」
- 在列表中找到
ClassLib,勾选「引用」选项,点击「确定」 - 重启Libre Calc使引用生效
3. 验证实例化代码
使用以下两种方式之一尝试实例化,确保代码格式正确:
方式一:直接指定库名实例化
Dim testObj As Object testObj = New ClassLib.TestClass
方式二:先加载库再实例化
GlobalScope.BasicLibraries.LoadLibrary("ClassLib") Dim testObj As Object testObj = New TestClass
额外注意事项
- 检查ClassLib库是否被设置为「隐藏」或「只读」,右键库选择「属性」确认权限
- 如果类的构造方法是
Private Sub New(),外部无法实例化,必须改为Public
内容的提问来源于stack exchange,提问作者Ibraheem
相关产品推荐
相关产品推荐

