GJY 发表于 2004-2-18 10:47:00

VBA里变量传递总是出问题,为什么?

VBA里变量传递总是出问题,为什么?
有时同一变量,如果不再次对其定义,在使用时总是说变量类型不对,下面的程序供参考
Dim pp, pc, ct, tc, mm, fm, angle As Double
TextBox1.text = 4450
TextBox2.text = 132
TextBox3.text = 293
TextBox4.text = 620
TextBox5.text = 900
TextBox6.text = 2000
pp = Round(Val(TextBox1), 4)
pc = Round(Val(TextBox2), 4)
ct = Round(Val(TextBox3), 4)
tc = Round(Val(TextBox4), 4)
fm = Round(Val(TextBox5), 4)
mm = Round(Val(TextBox6), 4)
必须在此定义                       
        Dim ppm As Double
                       Dim mmm As Double
                       Dim fmm As Double
                       Dim tcm As Double
                       ppm = pp
                       mmm = mm
                       fmm = fm
                       tcm = tc
"For i = 0 To Int(ObjCurve.length / pp)"                       如果不再次定义会出问题
"For i = 0 To Int(ObjCurve.length / ppm)"       这样就好了

bluemoon 发表于 2004-2-18 11:04:00

你是在同一个sub里面写的上面的代码吗?
把你的dvb传上来看看

subtlation 发表于 2004-2-18 13:31:00

我也遇到这种情况。看程序没有问题。

efan2000 发表于 2004-2-18 17:14:00

pp, pc, ct, tc, mm, fm这几个变量其实是变体型的,Variant。它随后面赋值时的数据类型而变化,所以最好定义成固定的类型。

mccad 发表于 2004-2-18 17:30:00


Dim pp, pc, ct, tc, mm, fm, angle As Double很多初学者可能都会认为,以上的语句是将所有的变量均设置为Double型,其实不是这样的,该语句只将最后的angle设置为Double型,而前面的pp, pc, ct, tc, mm, fm都没有定义其数据类型,所以这些变量均按缺省设置为 Variant 类型。
'在一行中声明多个变量。AnotherVar 为 Variant 类型,
'因为它的类型被省略了。
Dim AnotherVar, Choice As Boolean, BirthDate As Date
页: [1]
查看完整版本: VBA里变量传递总是出问题,为什么?