【问题标题】:How to open a Workbook with a password, disable events如何使用密码打开工作簿,禁用事件
【发布时间】:2012-07-20 13:41:40
【问题描述】:

如何使用密码打开工作簿,禁用事件, 然后将背景中的工作表复制到第二个文件并保存。 我需要 VBA,在 MS-Access 和 Excel 文件中工作

到目前为止,我一直在做这件事,正在工作。

Private Sub TestFunction()

'strPath = CurrentDb.Properties(0)
'strPath = Left(strPath, Len(strPath) - Len(Dir(strPath, vbNormal))) & "Temp\"
Dim CopyFrom As Object
Dim CopyTo As Object ''Early binding: Workbook
Dim CopyThis As Object
Dim xl As Object ''Early binding: New Excel.Application

Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set CopyFrom = xl.Workbooks.Open("D:\A01.xls")
'CopyFrom.EnableEvents = False
Set CopyThis = CopyFrom.Sheets(1) ''Sheet number 1
Set CopyTo = xl.Workbooks.Open("D:\PM1.xls")
CopyThis.Copy After:=CopyTo.Sheets(CopyTo.Sheets.Count)
CopyFrom.Close
End Sub

这将打开 Excel,我将传递副本的工作表输入到第二个文件。

但我需要在后台传递密码,删除工作表并保存第二个文件,全部在后台。 我还需要删除一张工作表,而不是问我,比如:

CopyTo.Sheets("Sheet1").Delete

谢谢

【问题讨论】:

  • xl.Workbooks.Open 可以将密码作为参数以及文件名
  • 设置 CopyFrom = xl.Workbooks.Open("D:\A01.xls", "admin") 不起作用。
  • 只有当工作表的名称实际上是“Sheet1”时,delete 语句才会起作用。否则,您只需将第一张纸称为 sheet(1) 这只是一个旁注。

标签: excel vba ms-access copy


【解决方案1】:

密码问题

仔细检查它是“打开文件”密码(password 参数)还是“修改文件”密码(WriteResPassword 参数)。

类似:

Sub OpenMyFile()
    Workbooks.Open Filename:="Path", Password:="OpenFile", WriteResPassword:="WriteFile"
End Sub

删除而不提醒

对于第二个问题,您可以这样做:

Application.DisplayAlerts=False
CopyTo.Sheets("Sheet1").Delete
Application.DisplayAlerts=True

【讨论】:

  • 它来自 VBA Code 一个带有密码的登录窗口。
  • 我不明白你的问题。请试一试,告诉我们出了什么问题。顺便说一句,我已经用删除解决方案编辑了我的答案
猜你喜欢
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 2023-01-12
  • 2016-02-02
  • 1970-01-01
相关资源
最近更新 更多