直接发代码Function FSN050(FileName As String, SYSKBN As Integer) As Integer    Dim VBFileDialog        As struct_VBFileDialog
    Dim iOpenFileDialog     As Integer
    Dim sFilter             As String
    Dim iParentWnd          As Long    iOpenFileDialog = False    sFilter = "Excel 5.0ブック (*.XLS)|*.XLS|すべてのファイル(*.*)|*.*||"    iParentWnd = Screen.ActiveForm.hWnd    Call VBFileDialogVBFileDialog(VBFileDialog, iOpenFileDialog, sFilter, iParentWnd) 
    ’ 运行到这步跳转   Sub VBFileDialogVBFileDialog(VBFileDialog As struct_VBFileDialog, iOpenFileDialog As Integer, sFilter As   String, iParentWnd As Long)    
    Dim ofn As struct_OPENFILENAME
    
    If iOpenFileDialog = True Then
        VBFileDialog.iOpenFileDialog = True
    Else
        VBFileDialog.iOpenFileDialog = False
    End If
    
    VBFileDialog.m_ofn = ofn
        VBFileDialog.m_ofn.lStructSize = Len(VBFileDialog.m_ofn)
    
  
    VBFileDialog.m_ofn.hWndOwner = iParentWnd   ’运行到这跳转   fput_exceldata_err:
    MsgBox Error$   ’到这 提示字段溢出
On Error GoTo 0
    DoCmd.Hourglass False
    fput_exceldata = False
Exit Function
VBFileDialog.m_ofn   ofn 这俩值查的时候 是类型不一致
VBFileDialog.m_ofn.lStructSize=0       Len(VBFileDialog.m_ofn) =  72    
iParentWnd = 8388892     VBFileDialog.m_ofn.hWndOwner = 0 求高手解答,急急急
  
    

解决方案 »

  1.   

    列出几个疑点,仅供参考:
    1、变量ofn声明之后,没有给它赋值,怎么又把它赋给VBFileDialog.m_ofn了呢?个人觉得这个赋值语句没必要。
    2、fput_exceldata_err:部分应该是程序发生异常时的处理代码,按现在的代码来看,就算程序正常执行,
       也会执行到这段代码,正确的方法应该在这段代码前面加上【exit sub】吧。
    3、sub的最初部分是不是少了【on error goto fput_exceldata_err】的代码呢?
    4、VBFileDialog.m_ofn ofn 这俩值查的时候 是类型不一致
       答:看看这两个变量的定义是不是都是:struct_OPENFILENAME