这是一个OLE自动化服务器的问题,能否把程序写全

解决方案 »

  1.   

    dim excelapp as object
    Set ExcelApp = CreateObject("excel.application")
    ExcelApp.Workbooks.Open App.Path & "\pers.xls", ReadOnly:=False以上代码确保运行无误
      

  2.   

    vb6.0有时出现一些令人不能理解的问题比如:llm06的写法完全正确(先引用),但有可能出现您提到的错误,比如有时拷贝工程到另一台机器编程就会出现。
    如果您属于以上情况可:
    您可以新建一个工程,并且将窗体文件或其他类文件等加入到工程就会好用。
      

  3.   

    利用VB编程使用OLE时,要考虑到Object在OLE服务器中是否创建,如果已经创建,则用CreateObject时会出现 Chang所说的错误,llm06所写的程序并不完全,应为:
    dim excelapp as object
    on local error resume next
    Set ExcelApp = GetObject("excel.application")if excelapp is nothing then
    Set ExcelApp = CreateObject("excel.application")
    end ifon local error goto 0
    ExcelApp.Workbooks.Open App.Path & "\pers.xls", ReadOnly:=False
      

  4.   

      Thanks tanhl 
        我试用了一下很好再问一下为什么,excel 文件一直是只读的?
      

  5.   

    chang: 
        要想更方便地使用Excel,你在设置对象时可以将ExcelApp设为
        Dim ExcelApp As Excel.Application
        在打开文件后,加上一条语句:
      ExcelApp.Visible=True
        此时应可看到,打开的文件并不是只读的,可以对打开的文件进行编辑与保存,所以我并不明白你所说的打开文件一直是只读是什么意思,也许是你后台一直有此文件的一个拷贝在运行?你可以试用“CTRL+ALT+DEL”来看看后台的进程。    另外,对文件操作完成后,应该注意将对象清空,即在最后加上
        For Each EBK In ExcelApp.Workbooks   'EBK为Excel.WorkBook
                EBK.Close
        Next
       Set ExcelApp = Nothing  有关利用VB及VBA混合编程的问题,你可以利用Excel自带的“录制宏”的功能将VBA所需代码录制下来,直接在VB中使用。
      

  6.   

    你用Regedit打开注册表,从HKEY_CLASSES_ROOT主键下找一下,看他里面写的是Excel.application还是Excel.application.9或其他,然后在你程序里作相应改变即可。问题解决了可别不给分!
      

  7.   

    tan说的对
    应该用
    Dim ExcelApp As Excel.Application
    set excelapp=new excel.application用Set ExcelApp = GetObject("excel.application")不好  
      

  8.   

    我在给人家写程序,客户要求用计算机来考 Microsoft Excel 操作题并机器自动阅卷。
    下面是我的程序片段,希望对你有帮助。
    Dim e_App,e_Workbook,e_Sheet1,e_Sheet2 as Object
    Set e_App = CreateObject("Excel.Application")
    With e_App
         .Visible = False
         Set e_Workbook = .Workbooks.Add
         Set e_Sheet1 = e_Workbook.Sheets(1) '第一张表
         Set e_Sheet2 = e_Workbook.Sheets(2)
         '一些处理
         .Visible = True
    End With对于 Dim ExcelApp As Excel.Application
    我觉得不是很好,至少我从来未成功过。
    Dim ExcelApp as Excel.Application.9 等依赖于Office的版本号。可能有8,85,9等。谁又能保证安装后的机器上一定按一个版本Office呢。
      

  9.   

    同意tbase,在VB中很多对象都需要用set new来激活,否则就会出现"对象变量或with 变量未设置"的错误。