我对这个问题的答案非常确定,但是我正在尝试各种方法来使一个非常顽固的项目能够工作。其中一个想法是尝试通过控件运行代码而不在表单中定义它。
因此,例如,我的原始代码看起来像这样:
frmProcess.MyViewer.MaxPageSize = 100
frmProcess.MyViewer.ResetPages
frmProcess.MyViewer.AddPageToView "C:\TestPage1.txt"
我已将它更改为:
Dim objViewer As MyViewer
objViewer.MaxPageSize = 100
objViewer.ResetPages
objViewer.AddPageToView "C:\TestPage1.txt"
我收到一个错误窗口,显示"Run-time error '91': Object variable or With block variable not set",但似乎没有办法“设置”这个控件。这是不可能的吗?还是有其他的方法可以解决这个问题而不需要一个表单?编辑:最终我放弃了这条路,因为找到了一种替代方案,避免了这个表格冻结的问题。我不想删除这个问题,以防其他人从答案中受益,这些答案可能会有用。
Dim objViewer As MyViewer = Nothing
。没有创建任何控件。 - user2864740new
,我会得到编译时错误“new 关键字的使用无效”。我有一个对控件的 ActiveX dll 的引用,所以我不确定还需要做什么才能使其工作,除非是引用 oca 与 dll 的问题,这一点我不是很清楚。使用 CreateObject,我在运行时得到“运行时错误 '429':ActiveX 组件无法创建对象”。 - Joe M