just_oracle 2014-12-04 02:09 采纳率: 0%
浏览 5201

VBA中提示子程序或函数未定义?

Private Sub CommandButton1_Click()
Dim DoubleTemp As Double
Dim ll_Pos As Long
Dim PanelName() As String
Dim DexStr As String
Dim StringTemp As String
Dim Extract As New TBDex
Dim Extract_1 As New TBDex

Dim Val As Variant


DexStr = "hull.block(*).panel(*).name"
Extract.DoDataExtraction DexStr
I = 1
Val = Extract.GetValue

ReDim PanelName(1)
While TypeName(Val) = "String"
   PanelName(I) = Val
   I = I + 1
   Val = Extract.GetValue
   ReDim Preserve PanelName(UBound(PanelName) + 1)
Wend
    If I < 2 Then
    res = WarningMsg("PanelName not found!")
    Exit Sub
End If

DeleteWorkSheet ("板材加工信息")
Set NewSheet = Worksheets.Add
NewSheet.Name = "板材加工信息"
Worksheets("板材加工信息").Activate

NewSheet.Cells(1, 1) = "零件编号"
NewSheet.Cells(1, 2) = "单元批次"
NewSheet.Cells(1, 3) = "切割图号"
NewSheet.Cells(1, 4) = "单件重量"
NewSheet.Cells(1, 5) = "零件数量"
NewSheet.Cells(1, 6) = "零件面积"
NewSheet.Cells(1, 7) = "零件厚度"
NewSheet.Cells(1, 8) = "零件宽度"
NewSheet.Cells(1, 9) = "零件长度"

NewSheet.Columns("A:A").Select
Selection.ColumnWidth = 8.88
NewSheet.Columns("B:B").Select
Selection.ColumnWidth = 8.88
NewSheet.Columns("C:C").Select
Selection.ColumnWidth = 8.38
NewSheet.Columns("D:D").Select
Selection.ColumnWidth = 8.38
NewSheet.Columns("E:E").Select
Selection.ColumnWidth = 8.38
NewSheet.Columns("F:F").Select
Selection.ColumnWidth = 8.88
NewSheet.Columns("G:G").Select
Selection.ColumnWidth = 8.38
NewSheet.Columns("H:H").Select
Selection.ColumnWidth = 8.38
NewSheet.Columns("I:I").Select
Selection.ColumnWidth = 10.38

nrow = 1
For K = 1 To I - 1
    nrow = nrow + 1
    ll_Pos = InStr(PanelName(K), "-") '-在字符中第几个出现
    If ll_Pos > 0 Then
        NewSheet.Cells(nrow, 1) = Mid(PanelName(K), ll_Pos + 1) '从左边ll_Pos+1个字符开始取剩余全部
        NewSheet.Cells(nrow, 2) = Mid(PanelName(K), 1, ll_Pos - 1) '从左边第一个字符开始取ll_Pos-1个字符
    End If

    DexStr = "HULL.PANEL(" + Chr$(39) + PanelName(K) + Chr$(39) + ").WEIGHT"
    NewSheet.Cells(nrow, 4) = DexStr
    Extract.DoDataExtraction DexStr
    Val = Extract.GetValue
    DoubleTemp = 0
    If TypeName(Val) = "Double" Then
       DoubleTemp = Val
    End If
    NewSheet.Cells(nrow, 4) = DoubleTemp

    DexStr = "HULL.PANEL(" + Chr$(39) + PLATE(K) + Chr$(39) + ").AREA"
    Extract.DoDataExtraction DexStr
    Val = Extract.GetValue
    DoubleTemp = 0
    If TypeName(Val) = "Double" Then
       DoubleTemp = Val
    End If
    NewSheet.Cells(nrow, 6) = DoubleTemp

    DexStr = "HULL.PANEL(" + Chr$(39) + PLATE(K) + Chr$(39) + ").THICKNESS"
    Extract.DoDataExtraction DexStr
    Val = Extract.GetValue
    StringTemp = ""
    If TypeName(Val) = "String" Then
       StringTemp = Val
    End If
Next K
UserForm3.Hide

End Sub


  • 写回答

2条回答

  • 宋哥 2014-12-04 02:56
    关注

    出错后光标会指向错误处的函数或过程,看那个函数或过程是否存在?有没有写错?

    评论

报告相同问题?

悬赏问题

  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算