OLE显示已存在的excel文件,不需要编辑,excel内容较多时,OLE显示不完全,不知何故?看了一下,似乎只显示到64行,即使sizemode设为zoom也一样相关代码如下
    With OLE1
        .AutoActivate = 0 '用户无法编辑
         .SizeMode = 2     'autosize
        .CreateEmbed strFileName
        
        HScroll1.LargeChange = 500
        HScroll1.SmallChange = 500
        
        VScroll1.LargeChange = 500
        VScroll1.SmallChange = 500
        
        HScroll1.Max = .Width - Picture1.Width
        VScroll1.Max = .Height - Picture1.Height
        
        mstrHVflag = "V"
    End With
望高人指点!

解决方案 »

  1.   

    ole不好用,调用excel对象多好!
    而且其实也可以把调用的excel对象显示在自己的窗体里面的,效果比ole好多了。
      

  2.   

    而且其实也可以把调用的excel对象显示在自己的窗体里面的,效果比ole好多了。这个怎么做?
      

  3.   

    excel对象控制excel文件还知道,可要显示在自己的窗体里不知该如何实现?
      

  4.   

    概括来说就是先引用或创建excel对象,生成实例,打开需要的文档,获取excel实例的handle,用SetParent把它移到自己的窗体中,然后为了跟自己的窗体融合,再去掉标题栏,如果需要再去掉菜单栏、工具栏等等,调整好大小,OK。
    我以前做的一个办公软件就是这么搞的,效果不错,不过具体代码在办公室的电脑里,楼主如果确定用这种方法,可以按我说的思路自己先研究一下,或者等明天我发给你源码。
      

  5.   

    .AutoActivate = 0 '用户无法编辑
    的状态下能显示多少行与OLE控件的大小在关系.如果要更好的处理Excel建议引用Excel库(这种方法可以操作Excel里面的全部对象)
    及在可插入对象里面用Excel表(这也不是什么好办法)
      

  6.   


    不错的方法,我先研究研究,方便的话把源码发给我吧,我的邮箱 [email protected]
      

  7.   

    收到,多谢!
    还有一个问题
    1、如何让打开的excel不让用户编辑?
      

  8.   


    xlSheet.Protect  ?另外,窗口退出时怎么总报excel异常?
      

  9.   

    退出时一定要保证先退出excel的编辑状态,就是说退出时你可以选定了单元格,但是不能正在编辑单元格。
      

  10.   

    如果不是上面的原因,那可能是你对excel文件进行了编辑操作,那么退出前先用xlapp.activeworkbook.save保存一下,用xlapp.workbooks.close关闭工作簿,再用xlapp.quit退出时就不会出错了。
      

  11.   

    关于保护,目前用protect解决,这样也能保证退出时用户不处于编辑状态    xlSheet.Protect退出过程加入如下代码,就不用sleep了(sleep也不能保证不报错)
    Private Sub Form_Unload(Cancel As Integer)
        ShowWindow xlhWnd, SW_HIDE
        SetParent xlhWnd, 0
        xlapp.DisplayAlerts = False
        xlapp.Quit                                    
        Set xlapp = Nothing                           
    End Sub