自动宏的问题

ccbbcc 2019-05-10 10:00:59
我想实现让EXCEL工作簿关闭时自动保存,而不需要用户手工“保存”按钮。
代码如下:
Option Explicit

Dim XlApp As New Excel.Application '使用 Excel 对象删除指定行
Dim XlBook As New Excel.Workbook
Dim XlSheet As New Excel.Worksheet

Private Sub Command1_Click()
XlApp.StatusBar = "四维实业公司人事报表"
End Sub

Private Sub Command2_Click()
'XlBook.Save
XlApp.ThisWorkbook.Save

XlApp.Visible = False
End Sub

Private Sub Form_Load()
Set XlApp = CreateObject("Excel.Application") '创建EXCEL对象
XlApp.Visible = True

Set XlBook = XlApp.Workbooks.Open(App.Path & "\8-1 自动宏.xlsm")
Set XlSheet = XlBook.Worksheets(1)
End Sub

有错误。
我把XlApp.ThisWorkbook.Save
改为XlBook.Save

又出现这个错误。
请问高手,如何解决?谢谢!
...全文
160 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
milaoshu1020 2019-05-11
  • 打赏
  • 举报
回复
你看这个代码行不行,我试了一下,没问题;
不会弹窗,直接关闭,可以保存;

Option Explicit

Dim XlApp As Excel.Application '使用 Excel 对象删除指定行
Dim XlBook As Excel.Workbook
Dim XlSheet As Excel.Worksheet

Private Sub Command1_Click()
XlApp.StatusBar = "四维实业公司人事报表"
End Sub

Private Sub Command2_Click()
XlBook.Save
XlApp.Visible = False
End Sub

Private Sub Form_Load()
Set XlApp = CreateObject("Excel.Application") '创建EXCEL对象
XlApp.Visible = True

Set XlBook = XlApp.Workbooks.Open(App.Path & "\8-1 自动宏.xlsm")
Set XlSheet = XlBook.Worksheets(1)
End Sub

Private Sub Form_Unload(Cancel As Integer)
XlApp.Quit
End Sub
ccbbcc 2019-05-11
  • 打赏
  • 举报
回复
谢谢!还是不行,提示“拒绝的权限”。
milaoshu1020 2019-05-10
  • 打赏
  • 举报
回复
不好意思,写错了;
改成:
fso.deletefile xlbook.fullname,true
应该就可以了;
ccbbcc 2019-05-10
  • 打赏
  • 举报
回复
谢谢!不行,有错误。
milaoshu1020 2019-05-10
  • 打赏
  • 举报
回复
这样试试:

Option Explicit

Dim XlApp As New Excel.Application '使用 Excel 对象删除指定行
Dim XlBook As New Excel.Workbook
Dim XlSheet As New Excel.Worksheet
dim fso as object

Private Sub Command1_Click()
XlApp.StatusBar = "四维实业公司人事报表"
End Sub

Private Sub Command2_Click()
fso.delete xlbook.fullname,true
XlBook.Save
'XlApp.ThisWorkbook.Save

XlApp.Visible = False
End Sub

Private Sub Form_Load()
set fso = createobject("scripting.filesystemobject")
Set XlApp = CreateObject("Excel.Application") '创建EXCEL对象
XlApp.Visible = True

Set XlBook = XlApp.Workbooks.Open(App.Path & "\8-1 自动宏.xlsm")
Set XlSheet = XlBook.Worksheets(1)
End Sub

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧