标题:VB如何操作当前已经打开的工作薄?
只看楼主
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
结帖率:51.67%
已结贴  问题点数:20 回复次数:2 
VB如何操作当前已经打开的工作薄?
我知道:Set xlBook = xlApp.Workbooks.Open(App.Path & FileName)是去打开一个工作薄.

现在想作一个示例: 在当前已打开的EXCEL中活动工作表中写一个字符...
代码如下:

Public n As Integer '用来记录第1选择了关键后的数字
Public nj As Integer '用来记录第2选择了加总字段的数字
Public mxz As Integer '用来记录2以后没有被选中字段的数字
Public xlApp As Excel.Application '定义EXCEL类
Public xlBook As Excel.Workbook '定义工件簿类
Public xlsheet, xlsheet2, xlsheet3 As Excel.Worksheet '定义工作表类
Private Sub Command1_Click()
 Dim iRow As Integer
 Dim I As Integer
 Dim shzx
  On Error Resume Next
Set xlApp = GetObject(, "Excel.Application") '判断Excel是否打开
If xlApp.xlBook.ActiveWorkbook.Sheets.Count = 0 Then
MsgBox "请打开一个工作簿!", vbInformation, "提示"
Exit Sub
End If   
  Set xlsheet = xlApp.xlBook.ActiveWorksheets(2) '打开sheet1工作表
  xlsheet.Activate
  xlsheet.Cells(2, 3) = "操作已打开的工作表"
   
End Sub  

  为何总是执行了 "请打开一个工作簿!" 这句就没有退出了..我明明打开了两个EXCEL表呀?
请高手帮忙指点一下.
搜索更多相关主题的帖子: 记录 工作表 EXCEL 
2011-10-27 12:25
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
得分:10 

无知
2011-10-28 00:09
xlin1033xl
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:160
专家分:129
注 册:2007-6-24
得分:10 
在获取对象的时候可能出错了,而你用了On Error Resume Next
 所以无法捕捉到错误,试试下面的实现

Set xlApp = GetObject(, "Excel.Application")
        If Err.Number <> 0 Then ExcelWasNotRunning = True

        If ExcelWasNotRunning Then                         '没有获取到
            xlApp.Quit: GoTo Errlab
        End If

        If xlApp.Workbooks.Count = 0 Then
            xlApp.Quit: GoTo Errlab
        End If
Errlab:
     msgbox "获取打开文件出错!"
     Err.Clear

-------------程序*酒*人生
2011-10-29 20:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-353567-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.274101 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved