CommonDialog1.CancelError = True
On Error GoTo ErrHandler
' 设置标志
CommonDialog1.Flags = cdlOFNHideReadOnly
' 设置过滤器
CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _
"(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
' 指定缺省的过滤器
CommonDialog1.FilterIndex = 2
' 显示“打开”对话框
CommonDialog1.ShowOpen
' 显示选定文件的名字
MsgBox CommonDialog1.FileName
为啥出现“标签未定义错误”

解决方案 »

  1.   

    标签未定义
    这个错误的起因与解决方法如下所示: 
    引用的行标签或行号 (例如在 GoTo 语句中)在引用的范围之外 
    标签必须在含有该引用的过程中,行标签只有在其所属的过程中才可见。Private Sub Command1_Click()
        ' 设置“CancelError”为 True
        CommonDialog1.CancelError = True
        On Error GoTo ErrHandler
        ' 设置标志
        CommonDialog1.Flags = cdlOFNHideReadOnly
        ' 设置过滤器
        CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _
        "(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
        ' 指定缺省的过滤器
        CommonDialog1.FilterIndex = 2
        ' 显示“打开”对话框
        CommonDialog1.ShowOpen
        ' 显示选定文件的名字
        MsgBox CommonDialog1.FileName
        Exit Sub
        
    ErrHandler:
        ' 用户按了“取消”按钮
        Exit Sub
    End Sub
      

  2.   

    CommonDialog1.CancelError = True
    On Error GoTo ErrHandler
    ' 设置标志
    CommonDialog1.Flags = cdlOFNHideReadOnly
    ' 设置过滤器
    CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _
    "(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
    ' 指定缺省的过滤器
    CommonDialog1.FilterIndex = 2
    ' 显示“打开”对话框
    CommonDialog1.ShowOpen
    ' 显示选定文件的名字
    MsgBox CommonDialog1.FileName
    ErrHandler:
     '错误信息
      

  3.   

    CommonDialog1.CancelError = True
    On Error GoTo ErrHandler
    ' 设置标志
    CommonDialog1.Flags = cdlOFNHideReadOnly
    ' 设置过滤器
    CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _
    "(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
    ' 指定缺省的过滤器
    CommonDialog1.FilterIndex = 2
    ' 显示“打开”对话框
    CommonDialog1.ShowOpen
    ' 显示选定文件的名字
    MsgBox CommonDialog1.FileName
    exit sub
    ErrHandler:
    ...
    end sub
     '错误信息
      

  4.   

    因为你那段代码所在的过程中,没有“ErrHandler”这个行标签。
      

  5.   

    //
    //Written by : JINGPENG
    // Modified : 03 Dec 2005
    // Date : 20 07 2009
    // WHEN CONECT PIN WIRE ,NOT OK,IF NOT CONNECT PIN WIRE ,OK#include "C:\\ST200F\\Samples\\color.h"#define HEXFILE "eu050722-D.hex"
    #define COMPORT "4"#define DEVICE  "18F24J10"#define PW_VUP  4
    #define SW_VUP  1
    #define PW_12VD  3
    #define SW_12VD  2#define PIN_GND    180
    #define PIN_Ref5V    142
    #define PIN_5VD    146
    #define PIN_12VD    141
    #define PIN_VS    171
    #define PIN_DRTN    134
    #define PIN_TEMP_SEC    202
    #define PIN_BOOST_OK_SEC    179
    #define PIN_5VD_OV 225#define LMT_H5VDOVP   6.5
    #define LMT_L5VDOVP   5.6#define ERR_NOERROR 0
    #define ERR_SETUP   1
    #define ERR_VUP  5#define ERR_5VDOV   13#define TEST_progamU37  1
    #define TEST_OVP5VD  1#define DEBUG 1func DispPassFail(bPass, sMsg, dv)
    Dim sDisp1 as string
    if bPass then
    print sMsg , " OK at ",dV , endl
    else
    sDisp1 := sMsg + " Fail"
    print sDisp1, " : ", dv, endl
    BoardMessage(1, sDisp1, RED)
    end
    endfunc MessV(pinp, pinm)
    Dim v as Double
    ict.SetMeasurePin( pinp, pinm )
    v := ict.MeasureDC( )
    ict.CutMeasurePin( pinp, pinm )
    timer.delayms(1)
    return v
    endfunc PowerON()
    pw.SetVoltCurr( PW_VUP, 5.0, 0.5 ) // Apply Power to DUT
    pw.SetVoltCurr( PW_12VD, 12.0, 1.0 )
    timer.delayms(30)endfunc PowerOff()
      pw.SetVoltCurr( PW_VUP, 0.0, 0.5 ) 
    pw.DischargeON( PW_VUP, 0.5) 
      pw.SetVoltCurr( PW_12VD, 0.0, 0.5 ) 
    pw.DischargeON( PW_12VD, 0.5) 
    timer.delayms(50) pw.DischargeOFF( PW_VUP) 
      pw.DischargeOFF( PW_12VD)
    endDim nStatus as Integer
    Dim s as string
    proc main()
    Dim nStatus as Integer
    Dim dV, dVset, dLmtH, dLmtL, dVLast as Double
    Dim dvApp as Double
    Dim bPass as Bool

    SetPassFail(1, FALSE) // Set Fail First

    nStatus := 0 if !pw.Init() then
    BOARDMESSAGE(1, "Power Fail", RED)
    return
    end
       BoardMessage(1, "Start normal test...", BLUE)
    print "...... Start Test ......", endl#ifdef TEST_progamU37
    Dim sCmd as String
    Dim nRet as Integer sCmd := '"C:\\Microchip\\MPLAB IDE\\Programmer Utilities\\PM3Cmd\\PM3CMD" /'
    // sCmd := '"D:\\Program Files\\Microchip\\MPLAB IDE\\Programmer Utilities\\PM3Cmd\\PM3CMD" /'
    sCmd := sCmd + COMPORT
    sCmd := sCmd + " /P"
    sCmd := sCmd + DEVICE
    sCmd := sCmd + " /F"
    sCmd := sCmd + HEXFILE 
    sCmd := sCmd + " /M /Y"
    SetPassFail(1, FALSE)
    if !pw.Init(  ) then
    BOARDMESSAGE(1, 'FAIL', RED)
    print "Power Supply Fail", endl
    return
    end
    pw.OutputON( 1, 1, TRUE)//PSW1.1
    pw.OutputON( 3,1, TRUE)  // for discharge relay PSW1.3
    pw.SetVoltCurr( 1, 24.0, 0.5 ) // power on to close the relay for progarmming /PSW1.1
    timer.delayms( 100 )
    BOARDMESSAGE(1, 'Programming', YELLOW)
    print sCmd , endl
    nRet := run(sCmd)
    if nRet = 0 then
    SetPassFail(1, TRUE)
    BOARDMESSAGE(1, 'PASS', GREEN)
    nStatus :=0
    else
    BOARDMESSAGE(0, 'FAIL', RED)
    nStatus :=1
    print "Error Code=", nRet, endl
    end


    //Discharge the MCLR
    pw.SetVoltCurr( 3, 24.0, 0.5)//PSW1.3
    timer.delayms(800)

    pw.SetVoltCurr( 1, 0.0, 0.5 ) // power off to open the relay for progarmming PSW1.1
    pw.OutputON( 1, 1, FALSE)//PSW1.1
    timer.delayms(300)
    pw.SetVoltCurr( 3, 0.0, 0.5)//PSW1.3#endif

    #ifdef TEST_OVP5VD
    if nStatus = ERR_NOERROR then
       ict.EXTRelayOn(5,true)//5-15-12VD
       ict.EXTRelayOn(6,true)//6-16-VS
       ict.EXTRelayOn(1,true)//1-SIG_GND
       ict.EXTRelayOn(2,true)//2-DRTN
       ict.EXTRelayOn(4,true)//4-0 BOOST
       ict.EXTRelayOn(3,true)//3-9 temp
       ict.EXTRelayOn(8,true)//8-12.5 OHM
    pw.OutputON( PW_VUP, SW_VUP, TRUE ) // Connect Power to DUT
    pw.OutputON( PW_12VD, SW_12VD, TRUE )
    PowerON()
    timer.delayms(120)

    dV := MessV(PIN_12VD, PIN_GND) // Mess 12vd Bias
       bPass := dV > 11.4 and dV <12.5
    DispPassFail(bPass, "12VD Bias", dv)
    if !bPass then
    nStatus := ERR_VUP
    end

       dV := MessV(PIN_VS, PIN_GND) // Mess 12 vs Bias
       bPass := dV > 11.4 and dV <12.5
    DispPassFail(bPass, "VS Bias", dv)
    if !bPass then
    nStatus := ERR_VUP
    end

    dV := MessV(PIN_Ref5V, PIN_GND) // Mess ref 5.0v Bias
       bPass := dV > 4.7 and dV < 5.2
    DispPassFail(bPass, "Ref_12VD 5.0V", dv)
    if !bPass then
    nStatus := ERR_VUP
    end

       dV := MessV(162, PIN_GND) // Mess VUP=3.3 Bias
       bPass := dV > 2.9 and dV <3.5
    DispPassFail(bPass, "VUP 3.3V", dV)
    if !bPass then
    nStatus := ERR_VUP
    end
      end if nStatus != ERR_NOERROR then
    BoardMessage(1, "Power Connect\nFail", RED)
    end
    if nStatus = ERR_NOERROR then //5VD OVP
    BoardMessage(1, "Testing\n5VD OVP", YELLOW)
    print "Testing 5VD OVP", endl
    bPass := FALSE
        timer.delayms(800)
        
        dV := MessV(PIN_5VD, PIN_GND) // Mess ref 5.0v Bias
        bPass := dV > 4.7 and dV < 5.2
      DispPassFail(bPass, "5VD NODE", dv)
      if !bPass then
      nStatus := ERR_VUP
      end
      #ifdef DEBUG
                   print " ", endl
                   print "5VD=", MessV(146, PIN_GND), endl
                   print "TEMP_SEC=", MessV(202, PIN_GND), endl
                   print "BOOST_OK_SEC=", MessV(179, PIN_GND), endl
                   print "DRTN=", MessV(134, PIN_GND), endl
                   print "SIG_GND=", MessV(180, PIN_GND), endl
                   print "12VD=", MessV(141, PIN_GND), endl
                   print "VS=", MessV(171, PIN_GND), endl
                   print "VUP=", MessV(162, PIN_GND), endl
                   print "176=", MessV(176, PIN_GND), endl
                   print "Vcc=", MessV(131, PIN_GND), endl
                   print "132=", MessV(132, PIN_GND), endl
                   print "196=", MessV(196, PIN_GND), endl
                   print "ref_12VD_5.0V=", MessV(142, PIN_GND), endl
                   print "3.3V=", MessV(162, PIN_GND), endl
                   print "ENABLE 5+12VD=", MessV(225, PIN_GND), endl
                   print "FB =", MessV(132, PIN_GND), endl
                   print "214 =", MessV(214, PIN_GND), endl
        #endif
      if nStatus = ERR_NOERROR then //5VD OVP
         ict.EXTRelayOn(7,true)//7-6.04K OHM
       print "Parallel 6.04K ohm Resistor with R386", endl
       timer.delayms(1000)
    dV := MessV(PIN_5VD, PIN_GND) // Mess ref 5.0v Bias
         bPass := dV < 1.0
       DispPassFail(bPass, "5VD NODE", dv)
       if !bPass then
       nStatus := ERR_VUP
       end
       end
         if bPass then
      print "\nOVP 5VD at : ", dV, endl
      BoardMessage(1, "5VD OVP Pass", BLUE)
      else
      nStatus := ERR_5VDOV
      BoardMessage(1, "5VD OVP Fail", RED)
      print "\nOVP 5VD don't happen at = ",dV, endl
      end
    end
         pw.SetVoltCurr( PW_12VD, 0.0, 0.0 ) // 12VD VS
         pw.DischargeON( PW_12VD, 0.5 )
         pw.SetVoltCurr( PW_VUP, 0.0, 0.0 ) // 5.0VD
         pw.DischargeON( PW_VUP, 0.5 )
         timer.delayms(100)
         //pw.OutputON( 4,1, FALSE )
     ict.EXTRelayOn(5,FALSE)
        ict.EXTRelayOn(6,FALSE)
        ict.EXTRelayOn(1,FALSE)
        ict.EXTRelayOn(2,FALSE)
        ict.EXTRelayOn(3,FALSE)
        ict.EXTRelayOn(4,FALSE)
        ict.EXTRelayOn(8,FALSE)//4-10
        ict.EXTRelayOn(7,FALSE)//4-10#endif  
    if nStatus = 0 then
      print "ALL PASS", endl
    BoardMessage(1, "Pass", GREEN)
    SetPassFail(1, TRUE ) // Set Fail First
    end
    end// "C:\Microchip\MPLAB IDE\Programmer Utilities\PM3Cmd\PM3CMD" /3 /P18F2320 /Feu026642.hex /Y /M