注册 登录
编程论坛 VB6论坛

vb6 关闭指定的工作簿的代码如何写?

清莲枫 发布于 2019-06-22 16:38, 1561 次点击
有5个按钮,
一个打开某A,B,C文档,一个关闭A,B,C文档(求代码)
一个打开某F文档,一个关闭F文档(求代码)
一个关闭所有打开的文档(求代码)


打开的没问题,关闭的代码怎么都不行

Private Sub Command1_Click()
Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类

If Dir("D:\temp\excel.bz") = "" Then '判断EXCEL是否打开
Set xlApp = CreateObject("Excel.Application") '没有开打,则创建EXCEL应用类
xlApp.Visible = True '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open("\\D\A.xlsx")      
Set xlBook = xlApp.Workbooks.Open("\\D\B.xlsx")
Set xlBook = xlApp.Workbooks.Open("\\D\C.xlsx")

过程。。。

End Sub

Private Sub Command2_Click()

On Error Resume Next
    xlBook.Close '关闭工作簿
    xlApp.Quit  '退出EXCEL
End Sub


关闭按键没有作用
3 回复
#2
风吹过b2019-06-22 21:07
变量作用域问题

你这一堆变量,应该使用 全局进行变量
Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类

放到所有的 sub 前面。
不要放到 sub 里面。
#3
清莲枫2019-06-24 08:05
回复 2楼 风吹过b
可以关闭了,但关闭的是所有的,怎么关闭制定的?
比如只关闭名称为A,B,C  的三个文档
#4
wufuzhang2019-06-24 10:00
回复 3楼 清莲枫
Private Sub Command2_Click()
On Error Resume Next
    Dim i As Integer
    For i = 1 To xlApp.Workbooks.Count
        If xlApp.Workbooks.Item(i).Name = "A.xlsx" Then xlApp.Workbooks.Item(i).Close    '关闭A工作簿
    Next
    If xlApp.Workbooks.Count = 0 Then xlApp.Quit
End Sub
1