Public Type A
    AA() As String
End TypePublic Type B
    BB() As String
End Type'-------------------Public Type DEF
    DD() As Variant
End TypePublic Type ABC
    EE() As DEF
End TypePublic Test As ABCVB6怎么在代码中依需求指定DD()下层阵列结构型态为A或B?

解决方案 »

  1.   

     是这意思麽?Public Type A
      AA() As String
    End TypePublic Type B
      BB() As String
    End Type'-------------------
    Public Type DType
      AA() As A
      BB() As B
    End TypePublic Type DEF
      DD() As DType
    End TypePublic Type ABC
      EE() As DEF
    End TypePublic Test As ABC
    Public Test2 As DTypeSub Main()
      ReDim Test2.AA(10)
      ReDim Test2.BB(5)
    End Sub
      

  2.   


    Public Type Coordinate
        X                       As Integer          'X座标
        Y                       As Integer          'Y座标
    End TypePublic Type MeasuredValue
        MValue                  As String           'Pin脚量测值
        MUnit                   As String           'Pin脚量测单位
    End Type'PMU
    Public Type PinContent
        PMU_PinName                 As String           'Pin脚名称
        PMU_PinForce                As MeasuredValue    'Force值
        PMU_PinForcerng             As MeasuredValue    'ForceRange值
        PMU_PinMin                  As MeasuredValue    'Min值
        PMU_PinMax                  As MeasuredValue    'Max值
        PMU_PinMeas                 As MeasuredValue    'Meas值
        PMU_PinMeasrng              As MeasuredValue    'MeasRange值
        PMU_PinResult               As String           'Pass or Fail'Search
    'Public Type Search_Data
        Search_PinName          As String
        Search_From             As MeasuredValue
        Search_To               As MeasuredValue
        Search_Step             As MeasuredValue
        Search_Min              As MeasuredValue
        Search_Max              As MeasuredValue
        Search_Value            As MeasuredValue
        Search_Result           As String
    'End Type'TMU
    'Public Type TMU_Data
        TMU_MeasureType             As String
        TMU_MeasureMode             As String
        TMU_PinName                 As String           'Pin脚名称
        TMU_Windows                 As MeasuredValue    'Windows值
        TMU_PinMin                  As MeasuredValue    'Min值
        TMU_PinMax                  As MeasuredValue    'Max值
        TMU_PinMeas                 As MeasuredValue    'Meas值
        TMU_ResultValue             As String           'Result.Value
        TMU_SearchedStart           As String
    'End Type'Function
    'Public Type Function_Data
        Function_PattenName              As String           'Function Patten名称
        Function_PattenNumber            As String           'Function Patten编号
        Function_Start                   As String           'Function Start
        Function_End                     As String           'Function End
        Function_Size                    As String           'Function Size
        Function_Result                  As String
    'End Type'OPERATION
    'Public Type OPERATION_Data
        OPERATION_Min                       As String
        OPERATION_Max                       As String
        OPERATION_ResultValue               As String
        OPERATION_Unit                      As String
        OPERATION_Result                    As String
    'End Type'DPS
    'Public Type DPS_Data
        DPS_PinName                 As String           'DPS
        DPS_Force                   As MeasuredValue    'DPS
        DPS_VRang                   As MeasuredValue    'DPS
        DPS_IRang                   As MeasuredValue    'DPS
        DPS_ClampH                  As MeasuredValue    'DPS
        DPS_ClampL                  As MeasuredValue    'DPS
    'End Type'PXI
    'Public Type PXI_Data
        PXI_dbR_ADC             As String           'PXI
        PXI_Test                As String           'PXI
        PXI_Item_Name           As String           'PXI
        PXI_Channel_Name        As String           'PXI
        PXI_Measured            As String           'PXI
        PXI_LowLimit            As String           'PXI
        PXI_HighLimit           As String           'PXI
        PXI_Decision            As String           'PXI
        
    'C_BASE
    'Public Type C_BASE_Data
        C_BASE_String()         As String           'C_BASE字串
        C_BASE_Count            As Integer          'C_BASE字串数量
    End Type'此行以上有26种底层结构分类(尚未完成)
    '----------------------------------------------------------------------------Public Type Pin
        PinData()               As PinContent       'Pin脚测试资料
        PinNum                  As Integer          'Pin脚总数
        ItemResult              As String           'Pass or Fail
        ICNumber                As Integer          'IC颗数索引值
        Pin_Coordinate          As Coordinate       'Site座标值
    End TypePublic Type Bin
        SoftBin                 As Integer          'Software Bin Number
        HwardBin                As Integer          'Hardward Bin Number
    End TypePublic Type Site
        SiteData()              As Pin              '该SiteNum中的资料
        SiteNum                 As Integer          'Site数量
        SiteCount               As Integer          'Site数量计算
        ItemType                As String           'ItemTest类型
        ItemTestTime            As String           'ItemTest时间 + 日期
        SiteBin()               As Bin              'SiteBin编号
        ItemTestName            As String           'ItemTest名称
    End TypePublic Type ItemTest
        ItemTestData()          As Site             '该ItemTest中的资料
        ItemTestNumber          As Integer          '该SubTest中ItemTest总数
        SubTestName             As String           '该ItemTest所属SubTest名称
        SubTest_ID              As String           '该SubTest ID编号
        SubTest_Count           As String           '该SubTest累计数量
        SubTest_FailBin         As String           '该SubTest Fail Bin Number
    End TypePublic Type SubTest
        SubTestData()           As ItemTest         '该SubTest中的资料
        SubTestNumber           As Integer          '该Flow中SubTest总数
        FlowTestTime            As String           '该Flow测试时间 + 日期
        FlowTestCoordinate      As Coordinate       '工程模式下的测试座标
        Test_Dut_Count          As Integer          '该Flow中Dut数
    End TypePublic Type CPMode
        Data_Log_Vesion         As String           'Data Log Vesion
        Lot_ID                  As String           'Lot ID(CP)
        Wafer_ID                As String           'Wafer ID(CP)
        Prober_Temperature      As String           'Prober Temperature(CP)
        Probe_card_number       As String           'Probe Card Number(CP)
    End TypePublic Type FTMode
        Customer_Lot_ID         As String           'Customer Lot ID(FT)
        Internal_Lot_ID         As String           'Internal Lot ID(FT)
        Dut_Board               As String           'Dut Board(FT)
    End TypePublic Type Flow
        FlowData()              As SubTest          '该Flow中的资料
        FlowNumber              As Integer          '该Log档中Flow的总数    MCP                     As CPMode           'IC种类(CP)
        MFT                     As FTMode           'IC种类(FT)
        
        LogFileName             As String           'Log档所在路径位置
        StartTestTime           As String           '该Log档的测试时间 + 日期
        PC_Name                 As String           'PC Name
        IP_Address              As String           'IP Address
        EndTestTime             As String           '该Log档的结束测试时间 + 日期
        Project_Path            As String           'Project Path
        Test_DUTs               As String           'Test DUTs
        Test_Mode               As String           '工程模式或是量产模式
        Flow_Name               As String           '该Log档的Flow名称
        Device_Name             As String           'Device Name
        Device_Pin_Count        As String           '测试Pin脚总数
    End TypePublic Test As Flow
    以上为部份源代码
    希望能让 PinData() as PinContent 依照需求选择连接底层结构类型
      

  3.   


    谢谢〜我大概知道你说的方法怎做了〜
    只是我想知道还有别的方法吗?例如:
    一个结构对像能assign给一个结构底层的Variant或Object类型吗?
    或是能否将PinData()的起始地址指到另一个结构的起始地址?
      

  4.   

    其他方法不会比这个更简单。object没办法享受IDE的自动提示,调用得不爽。
      

  5.   

    "没办法享受IDE的自动提示,调用得不爽。"
    用VB6调用EXCEL的Object写VBA Code也是很不爽〜好吧〜看来还是得认命〜谢谢〜
    要是日后用C应该就可以用指针进行串接了吧〜
      

  6.   

    与其想什么C、指针,不如换VB.NET。
      

  7.   


    既然您都提到了,我也顺便问问〜
    VB.NET处理二进制的资料速度会比C来得更有效率吗?
    目前工作上几乎都是用VB6和VC6〜原本看到的WIN7不支援VB6的长官们很什么困扰〜
    但是听说WIN8有支援〜大概就不会想改写旧系统了〜
      

  8.   

    VB.NET在大多数情况下效率接近C。VB6在计算密集型程序中性能严重落后VB.NET和C。