Public Sub openExcel()
'设置对话框属性,用于指定EXCEL文件
CommonDialog1.Filter= “Excel文件 * .xls”
CommonDialog1.Action= 1
If CommonDialog1.FileName< > “” Then
expath= CommonDialog1.FileName
'打开对话框指定的EXCEL工作簿
Workbooks.Open FileName:= expath
oldbook.Close
Else
End If
End Sub

解决方案 »

  1.   

    Workbooks.Open FileName:= expath
    代码在哪里?是vb还是vba?
    如果是vb,前面应该加一个excel对象的,如:
    dim mExcel as new excel.application
    mexcel.workbooks.open filename:=expath
    ....
      

  2.   

    感谢您的解答,用的VB,也添加了excel对象,现在问题又来了,mexcel.workbooks.open filename:=expath运行时,错误提示48,加载dll文件错误,求指导啊
      

  3.   

    感谢您的解答,用的VB,也添加了excel对象,现在问题又来了,mexcel.workbooks.open filename:=expath运行时,错误提示48,加载dll文件错误,求指导啊
      

  4.   

    例子:2003环境
    Option Explicit
    Private mExcel As Excel.Application
    Private Sub Command1_Click()
        Set mExcel = New Excel.Application
        mExcel.Visible = True
        Dim S1 As String
        S1 = "d:\6.xls"
        mExcel.Workbooks.Open FileName:=S1
    End Sub
    执行后可以看到打开的6.xls文件。你那个excel是不是加载了一些加载项或加载宏等其它外部dll?
    你还是上全部代码和错误图示吧,不太好猜测的.......
      

  5.   


    '在全局模块通用段声明变量为EXCEL对象
    '声明变量为EXCEL应用程序对象
    Public oldxls As Excel.Application
    '声明变量为EXCEL工作簿对象
    Public oldbook As Excel.Workbook
    '声明变量为EXCEL工作表对象
    Public oldsheet As Excel.Worksheet
    '编写连接EXCEL的子程序(名为joinExcel)
    Private Sub CmdJoinExcel_Click()
    On Error Resume Next
    Set oldxls = GetObject(App.Path, "Excel.Application")
    If Err Then
      Err.Clear
    Set oldxls = CreateObject("excel.Application")
        If Err Then
          Exit Sub
        End If
    End If
    oldxls.Visible = True
    Set oldbook = oldxls.Workbooks.Add
    Set oldsheet = oldbook.Worksheets(1)
    End Sub
    '编写打开EXCEL文件的子程序openExcel
    Private Sub CmdOpenExcel_Click()
    '设置对话框属性,用于指定EXCEL文件
    If Err Then
      Err.Clear
    End If
    CommonDialog1.Filter = "Excel文件 * .xls"
    CommonDialog1.Action = 1
    If CommonDialog1.FileName <> "" Then
    expath = CommonDialog1.FileName
    '打开对话框指定的EXCEL工作簿
    Workbooks.Open FileName:=expath‘这句出错,xp系统48错误,win7系统运行429错误,求指导
      If Err Then
          Exit Sub
        End If
    oldbook.Close
    Else
    End If
    End Sub
    很急啊,求大神指导!
      

  6.   

    Workbooks.Open FileName:=expath‘这句出错,xp系统48错误,win7系统运行429错误,求指导
    要么是oldxls.Workbooks.Open FileName:=expath
    要么是oldbook.open FileName:=expath你光弄个Workbooks算啥?
      

  7.   

    糊涂了,
    --------------要么是oldbook.open FileName:=expath
    这是错误的,oldbook没有这样用的
      

  8.   

    你好,oldbook.open FileName:=expath,这句改了,又出现错误91,对象变量未设置,刚学vb,求教啊
      

  9.   

    Quote: 引用 7 楼 Topc008 的回复:

    糊涂了,
    --------------要么是oldbook.open FileName:=expath
    这是错误的,oldbook没有这样用的[/q
    大神,因为项目明天就交工了,能否给个联系方式,直接解决问题,另外我用的vb6.0版本估计和你版本不一样,问题也不一样
      

  10.   

    按照你的代码设计来的,请参考:
    Option Explicit
    '声明变量为EXCEL应用程序对象
    Private oldXls As Excel.Application
    '声明变量为EXCEL工作簿对象
    Private oldBook As Excel.Workbook
    '声明变量为EXCEL工作表对象
    Private oldSheet As Excel.Worksheet
    '编写连接EXCEL的子程序(名为joinExcel)
    Private Sub CmdJoinExcel_Click()
        On Error Resume Next
        Set oldXls = GetObject(, "Excel.Application")
        If oldXls Is Nothing Then
            Set oldXls = CreateObject("excel.Application")
        End If
        If oldXls Is Nothing Then
            MsgBox "无法创建Excel对象!!!"
            Exit Sub
        End If
        If Not oldXls.Visible Then oldXls.Visible = True
        MsgBox "Excel已经准备好,可以打开文件了!"
    End Sub
    '编写打开EXCEL文件的子程序openExcel
    Private Sub CmdOpenExcel_Click()
        '设置对话框属性,用于指定EXCEL文件
        On Error GoTo 100
        Dim exPath As String
        With CommonDialog1
            .Filter = "*.xls"
            .ShowOpen
            exPath = .FileName
        End With
        If exPath = "" Then Exit Sub
        '打开对话框指定的EXCEL工作簿
        Set oldBook = oldXls.Workbooks.Open(FileName:=exPath)
        MsgBox "指定的工作簿已经打开了---" & exPath
        Exit Sub
    100:
        MsgBox Err.Description
    End Sub

    代码都放在一个form里即可。
      

  11.   

     Private Sub CmdJoinExcel_Click()
        'Dim xlsApp As Object
        'Dim xlsBook As Object
        'Dim xlsSheet As Object
        Dim xlsApp As New Excel.Application
        On Error Resume Next ' 改变错误陷阱
        Set xlsApp = GetObject(App.Path, "et.Application")
        If Err Then
          Err.Clear '清除 Err 对象字段
        Set xlsApp = CreateObject("et.Application")
            If Err Then
              Exit Sub ' 退出程序,以避免进入错误处理程序
            End If
        End If
        xlsApp.Visible = True
        Set xlsBook = xlsApp.Workbooks.Add
        LX = (ComLX.Text)
        Select Case LX
          Case Is = 1
        Set xlsSheet = xlsBook.Worksheets(1) '设定工作表1
            Cells(1, 1) = "基本参数": Cells(2, 1) = "名称": Cells(2, 2) = "开式深沟球优化参数": Cells(3, 1) = "系列"
         Case Is = 2
        Set xlsSheet = xlsBook.Worksheets(2) '设定工作表2
            Cells(1, 1) = "基本参数": Cells(2, 1) = "名称": Cells(2, 2) = "密封深沟球优化参数": Cells(3, 1) = "系列"
         Case Is = 3
        Set xlsSheet = xlsBook.Worksheets(3) '设定工作表3
            Cells(1, 1) = "基本参数": Cells(2, 1) = "名称": Cells(2, 2) = "带防尘盖深沟球优化参数": Cells(3, 1) = "系列"
         End Select
        xlsApp.Save '保存工作簿
        xlsBook.Close  '关闭工作薄文件
            xlsApp.Quit   '结束excel对象
            Set xlsApp = Nothing   '释放xlapp对象得内存空间
            Set xlsBook = Nothing
            Set xlsSheet = Nothing
        End Sub
     大神,现在的问题是第一次可以给excel赋值,第二次就变成空的了,不能赋值,求解答,十分感谢啊!