首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb6 接续创建excel并操作,但只能作用在第一个book,求解

2012-12-30 
vb6连续创建excel并操作,但只能作用在第一个book,求解起因:使用vb6 创建excel并操作导入图片,为方便用户操

vb6 连续创建excel并操作,但只能作用在第一个book,求解
起因:
使用vb6 创建excel并操作导入图片,为方便用户操作,这个EXCEL是不保存不退出的,由用户自行选择需要的操作。
问题:
1:首次创建的excel如果不关闭,

       Dim xlapp As Object 'Excel.Application
       Set xlapp = CreateObject("Excel.Application")

       Dim XlBook As Object 'Excel.Workbook
       Set XlBook = xlapp.Workbooks.Add   

vb6  接续创建excel并操作,但只能作用在第一个book,求解


再次由VB6创建的EXCEL能生成,但对文件的操作只体现在第一个生成的book1那里,我需要建那个就体现在那个,如图,BOOK2应该有图片而不能写到BOOK1里!


2:如果关闭第一个EXCEL则报下列错误

vb6  接续创建excel并操作,但只能作用在第一个book,求解
具体位置如下:
 vb6  接续创建excel并操作,但只能作用在第一个book,求解 
要求:
求解!谢谢!






[解决办法]

引用:
1楼、4楼说的我知道,问题是我不能确定用户实际使用时到底开了几个book,有几个是关闭的等等
With xlapp 这句肯定是有问题,但是首次创建能用就没管它,先测试其他代码。

大家别管我贴的代码,那个肯定有问题。

我只要实现
Step 1: 点击按钮
Step 2: 产生EXCEL文件并执行指定操作(单纯的在单元格里填字符不指定工作簿也能在新产生的文件中实现,所以大家加入冻结窗……


看你的代码有点晕,一些地方是绝对引用,一些地方又是相对的。只能猜你的意图,改动如下,你原来的代码被注释:

Private Sub Command1_Click()
' Start Excel
       Dim xlapp As Object 'Excel.Application
       Set xlapp = CreateObject("Excel.Application")
       
       Dim XlBook As Object 'Excel.Workbook
       Set XlBook = xlapp.Workbooks.Add
       ' EXCEL是否可见
       xlapp.Visible = True
       'xlapp.Visible = False
       
  With xlapp
    .Cells.Select
    .Selection.RowHeight = 112
    .Selection.ColumnWidth = 16

    .Rows("1:1").Select
    
'    With Selection   '你原来的,这表示当前工作簿的选区,和新建的工作簿没关系,而这时可能没有工作簿被激活,引用要出错
     With .Selection   '加了个点在前面,表示xlapp的选区
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = True
    End With
    .Selection.RowHeight = 45
    
'    With ActiveWindow     同前面
    With .ActiveWindow
        .SplitColumn = 9
        .SplitRow = 1
    End With
    .ActiveWindow.SplitColumn = 2
    .ActiveWindow.FreezePanes = True
    
    .Range("A1") = "位号"
    .Range("B1") = "图片"
    .Range("C1") = "正常"
    End With
End Sub

热点排行