【发布时间】: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) 这只是一个旁注。