我想写一个把数组数据写入excel 的程序 先找网上的历程写了一个给一个单元格赋值的程序但是运行到
Set xlbook = xlapp.Workbooks.Open("f:\TT.xls")
时报错说是时实错误1004 没找到 f:\TT.xls 
但是我在F盘目录下有这个文件呀求助。
代码
通用模块声明
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlheet As Excel.Worksheet
Private Sub Command1_Click()Set xlapp = CreateObject("excel.application")
Set xlbook = xlapp.Workbooks.Open("f:\TT.xls")
xlapp.Visible = True
Set xlsheet = xlbook.Worksheets(sheet1)
 xlapp.Cells(2, 2) = 1
End SubPrivate Sub Command2_Click()
xlbook.Close (True)
xlapp.Quit
Set xlapp = Nothing
End Sub

解决方案 »

  1.   

    http://download.csdn.net/source/2341786
      

  2.   

    以下代码测试通过
    Dim xlapp As Excel.Application
    Dim xlbook As Excel.Workbook
    Dim xlheet As Excel.Worksheet
    Private Sub Command1_Click()Set xlapp = CreateObject("excel.application")
    Set xlbook = xlapp.Workbooks.Open("f:\TT.xls")
    xlapp.Visible = True
    Set xlsheet = xlbook.Worksheets("sheet1")
     xlapp.Cells(2, 2) = 1
    End SubPrivate Sub Command2_Click()
    xlbook.Close (True)
    xlapp.Quit
    Set xlapp = Nothing
    End Sub
      

  3.   

    你再仔细看一下F盘目录下是不是真有这个文件,文件名一个字母都不能错
    上面你的代码错在sheet1前后没加双引号
    另外一定要在菜单 工程->引用 里面勾选上 Microsoft Excel ....
      

  4.   

    谢谢楼上的帮助。
    工程--引用-- microsoft excel 我勾选上了啊。只是我用的是office2007 不是9.0版本的.是microsoft excel object libary 12.0 .我在F盘根目录下用右键建立的excel工作簿文件名TT呀。还是显示 没有"f:\TT.xls"呀。
    module1模块定义的
    Dim xlapp As Excel.Application
    Dim xlbook As Excel.Workbook
    Dim xlheet As Excel.Worksheet
    对不啊?
    求助。
      

  5.   

    但是,在运行关闭xls 的时候显示
    xlbook.Close (True) 没有对象。
    求助
     
      

  6.   

    打开E盘
    菜单:工具->文件夹选项->隐藏已知类型的扩展名
    把这个去掉就显示出扩展名来了
    所以你加了扩展名就成了f:\TT.xls.xls
      

  7.   

    先打开后,不要手动关闭EXCEL文件,这时候去点这个按钮就没问题了
      

  8.   

    感谢8楼得热心回复。
    我是个初学者,考虑问题不全面,感谢您得帮助。
    我感觉三条语句关闭文件的做用可有可无么?我用手关闭了以后同样可以用
    Set xlapp = CreateObject("excel.application")
    Set xlbook = xlapp.Workbooks.Open("f:\TT")
    xlapp.Visible = True
    Set xlsheet = xlbook.Worksheets("sheet1")
    打开。
    又测试了一下,我没有手动关闭excel文件,只是最小化了而已。
    xlbook.close(true)还是没有对象。
    能不能帮我分析下除了excel文件没打开外还有那些情况能出现这种情况
      

  9.   

    module1模块定义的
    Dim xlapp As Excel.Application
    Dim xlbook As Excel.Workbook
    Dim xlsheet As Excel.Worksheet模块定义要应用到窗体应该要用Public不能用Dim
    Public xlapp As Excel.Application
    Public xlbook As Excel.Workbook
    Public xlsheet As Excel.Worksheetxlapp.Cells(2, 2) = 1
    改为
    xlapp.Cells(2, 2) = "1" '赋值给Cell要用文字型关闭文档 最大化与最小化并没差别你的代码整体变为'*******************.bas 代码
    Public xlapp As Excel.Application
    Public xlbook As Excel.Workbook'******************* .frm 代码
    Private Sub Command1_Click()
       Set xlapp = CreateObject("excel.application")
       Set xlbook = xlapp.Workbooks.Open("f:\tt.xls")
       xlapp.Visible = True
       Set xlsheet = xlbook.Worksheets("sheet1")
       xlapp.Cells(2, 2) = "1"
    End SubPrivate Sub Command2_Click()
       xlbook.Close (True)
       xlapp.Quit
       Set xlbook = Nothing
       Set xlapp = Nothing
    End Sub
    '********************* 我的代码, 不需要引用, 直接创建对象即可Dim xlapp As Object '这两行要放到.bas的话 改用Public
    Dim xlbook As Object
    Private Sub Command1_Click()
       Set xlapp = CreateObject("excel.application")
       Set xlbook = xlapp.Workbooks.Open("f:\tt.xls")
       xlapp.Visible = True
       xlapp.Sheets("sheet1").Select
       xlapp.Cells(2, 2) = "1"
    End SubPrivate Sub Command2_Click()
       xlbook.Close (True)
       xlapp.Quit
       Set xlbook = Nothing
       Set xlapp = Nothing
    End Sub
      

  10.   

    谢谢12楼和10楼的热心帮助终于找到问题了。和10楼说的一样,我在module 模块定义的时候没有用public 定义。
    十楼的代码很好用,就是有一点我没看懂。
    Dim xlapp As Object & 这两句代码我怎么也不能写到
    Dim xlbook As Object
    Private Sub Command1_Click()这句的上面定义的时候就是这样Private Sub Command1_Click()
    Dim xlapp As Object 
    Dim xlbook As Object
    我在网上见过一个api的教程定义api函数的时候都是上面的形式定义的。但我怎么也做不到
    谢谢。
      

  11.   

    那通用 代码上 dim变量 和 再模块里 public变量 的区别。
    我是新手。
    不太懂谢谢。
     
      

  12.   

    Dim xlapp As Object  
    Dim xlbook As Object在最上面的通用区设置, 别在command1里面设,如此在这个窗体里面每个事件都可以用,如果你在command1里面设的话,command2与其它事件有用到xlapp就完蛋了..bas里面设置的话,要用PublicPublic xlapp As Object  
    Public xlbook As Object如此可以让这个工程里面的所有窗体 所有事件都能用.