问一下VB里面的类模块是如何调用的啊??我在工程中用了一个analysis的类模块负责计算功能,里面有一个属性是VoltDU,此外还有AmpereDu,peak等等的功能.analysis已经设计好了.我在form文件开始的时候定义了:    Public mCalculation As analysis
就是说已经定义了analysis的一个对象,
然后在计算的过程里面有这样一个语句,就是:   mCalculation.VoltDU = VoltDU200mV
VoltDU200mV是一个常数.也就是说对这个属性赋值.但是运行的时候这一句会报:object variable or with block variable not set.
是什么原因呢??我觉得既然已经写好analysis的类模块,而且也已经定义了对象analysis,那就可以对对象赋值了啊!望大侠赐教!!谢谢谢谢!

解决方案 »

  1.   

    需要先创建analysis类的实例:Set mCalculation = New analysis
      

  2.   

    //我在form文件开始的时候定义了:    Public mCalculation As analysis
    就是说已经定义了analysis的一个对象
    呵呵,问题的原因就出在你的定义,你只是进行了定义,而没有对对象进行绑定,改为:
    Public mCalculation As new analysis
    即可
      

  3.   

    哈哈
    有两种方法呀
    1,在你定义后用set方法
    Set mCalculation = New analysis
    2、开始就定义好Public mCalculation As new analysis
      

  4.   

    少了New关键字 Public mCalculation As New analysis
      

  5.   

    谢谢大家!
    不过很奇怪的是,原来一个人编的里面就没有new,就是直接用的Public mCalculation As analysis好像也是可以运行的啊??
    我现在自己重新做的时候怎么就不可以呢??
      

  6.   

    没有new,也应该有set
    vb的类直接使用应该是不行的,其它语言有静态方法,则可以不实例话。
      

  7.   

    不可能没有的,可能他是分开写的
    Public mCalculation As analysis
    set mCalculation = new analysis
      

  8.   

    类仅仅是对象的一个样板,类和对象就好比人类和shanquan1981,具体的行为是实例化的对象来
    完成,不能说人类正在拉屎,而是shanquan1981正在拉屎。所以必须先实例化一对象,这个在VB里面是New 才行。没有New是万万不行的(当然
    类的静态方法等另当别论)
      

  9.   

    Dim clsNewClass as New MyClassName