Vba 我收到一封“信”;“未定义用户类型”;定义变量时出错

Vba 我收到一封“信”;“未定义用户类型”;定义变量时出错,vba,excel,Vba,Excel,下面的代码用于我的函数开头。我只是将一个包含数字的单元格定义为变量,以减少以后在代码中键入的数量。我很困惑,因为我的变量类型没有什么特别的,只是一个很好的ole数 Sub PECcalc() Dim pu238 As [Worksheets("PEC Conversion").Cells(4, 6).Value] Dim pu241 As [Worksheets("PEC Conversion").Cells(5, 6).Value] Dim am241 As [Worksheets("PEC

下面的代码用于我的函数开头。我只是将一个包含数字的单元格定义为变量,以减少以后在代码中键入的数量。我很困惑,因为我的变量类型没有什么特别的,只是一个很好的ole数

Sub PECcalc()

Dim pu238 As [Worksheets("PEC Conversion").Cells(4, 6).Value]
Dim pu241 As [Worksheets("PEC Conversion").Cells(5, 6).Value]
Dim am241 As [Worksheets("PEC Conversion").Cells(6, 6).Value]
Dim pu238PEC As [Worksheets("PEC Conversion").Cells(2, 2).Value]
Dim pu239PEC As [Worksheets("PEC Conversion").Cells(3, 2).Value]
Dim pu240PEC As [Worksheets("PEC Conversion").Cells(4, 2).Value]
Dim pu241PEC As [Worksheets("PEC Conversion").Cells(5, 2).Value]
Dim am241PEC As [Worksheets("PEC Conversion").Cells(6, 2).Value]
Dim np237PEC As [Worksheets("PEC Conversion").Cells(7, 2).Value]
Dim u328PEC As [Worksheets("PEC Conversion").Cells(8, 2).Value]
Dim u235PEC As [Worksheets("PEC Conversion").Cells(9, 2).Value]
或者另一种风格:

Sub PECcalc()

    Dim pu238 As Double
    Dim pu241 As Double
    Dim am241 As Double
    Dim pu238PEC As Double
    Dim pu239PEC As Double
    Dim pu240PEC As Double
    Dim pu241PEC As Double
    Dim am241PEC As Double
    Dim np237PEC As  Double
    Dim u328PEC As Double
    Dim u235PEC As Double

    pu238 = Worksheets("PEC Conversion").Cells(4, 6).Value
    pu241 = Worksheets("PEC Conversion").Cells(5, 6).Value
    am241 = Worksheets("PEC Conversion").Cells(6, 6).Value
    pu238PEC = Worksheets("PEC Conversion").Cells(2, 2).Value
    pu239PEC = Worksheets("PEC Conversion").Cells(3, 2).Value
    pu240PEC = Worksheets("PEC Conversion").Cells(4, 2).Value
    pu241PEC = Worksheets("PEC Conversion").Cells(5, 2).Value
    am241PEC = Worksheets("PEC Conversion").Cells(6, 2).Value
    np237PEC = Worksheets("PEC Conversion").Cells(7, 2).Value
    u328PEC = Worksheets("PEC Conversion").Cells(8, 2).Value
    u235PEC =  Worksheets("PEC Conversion").Cells(9, 2).Value
    '...etc

Dim pu238 As 123.231
(假设单元格包含123.231)没有意义-尝试
Dim pu238 As Double:pu238=工作表(“PEC转换”)。单元格(4,6)。Value
修复前3行,但下一行
Dim pu238PEC As Double:pu238PEC[工作表(“PEC转换”)。单元格(2,2)。Value]
给出错误信息“Complile error:Expected Sub、Function或Property”
Dim pu238PEC As Double:pu238PEC[工作表(“PEC转换”)。单元格(2,2)。值]
应以与前三个类似的方式编写,即
Dim pu238PEC As Double:pu238PEC=工作表(“PEC转换”)。单元格(2,2).Value
请去掉方括号,并从编译时验证
[
]
。方括号内的表达式只是
应用程序的简写。评估
。系统地使用它们是完全危险的,应该有人指出。值也需要放在括号内吗?编辑:我想说…括号的用途是什么???@Harry如果这些单元格中的任何一个包含错误值(例如
#VALUE!
#REF!
),这就是你会得到的错误,是的。错误值不能分配给一个
Double
。或者除了
变量之外的任何东西。使用
IsError
函数来确定将它分配给
Double
@Harry是否合法–方括号被删除,代码对我来说很好。我对v的语法非常陌生ba。我不确定括号是否正确,但它解决了前几天我遇到的一个错误。谢谢你的提醒!
Sub PECcalc()

    Dim pu238 As Double
    Dim pu241 As Double
    Dim am241 As Double
    Dim pu238PEC As Double
    Dim pu239PEC As Double
    Dim pu240PEC As Double
    Dim pu241PEC As Double
    Dim am241PEC As Double
    Dim np237PEC As  Double
    Dim u328PEC As Double
    Dim u235PEC As Double

    pu238 = Worksheets("PEC Conversion").Cells(4, 6).Value
    pu241 = Worksheets("PEC Conversion").Cells(5, 6).Value
    am241 = Worksheets("PEC Conversion").Cells(6, 6).Value
    pu238PEC = Worksheets("PEC Conversion").Cells(2, 2).Value
    pu239PEC = Worksheets("PEC Conversion").Cells(3, 2).Value
    pu240PEC = Worksheets("PEC Conversion").Cells(4, 2).Value
    pu241PEC = Worksheets("PEC Conversion").Cells(5, 2).Value
    am241PEC = Worksheets("PEC Conversion").Cells(6, 2).Value
    np237PEC = Worksheets("PEC Conversion").Cells(7, 2).Value
    u328PEC = Worksheets("PEC Conversion").Cells(8, 2).Value
    u235PEC =  Worksheets("PEC Conversion").Cells(9, 2).Value
    '...etc