2012-07-20 56 views
1

如何使用密码打开工作簿,禁用事件, 然后将背景中的工作表复制到第二个文件并保存。 我需要在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 

谢谢

+0

xl.Workbooks.Open可以采取密码作为参数以及文件名 – 2012-07-20 13:53:20

+0

Set CopyFrom = xl.Workbooks.Open(“D:\ A01.xls”,“admin”) 不工作。 – Adrian 2012-07-20 13:56:46

+0

只有表格的名称实际上是“Sheet1”时,delete语句才会起作用。否则,您只需将第一张纸张称为纸张(1),这仅仅是一个旁注。 – Trace 2012-07-20 14:41:47

回答

8

密码问题

注意检查羯羊它是一个“打开文件”的密码( password参数)或“修改文件”密码(参数WriteResPassword)。

喜欢的东西:

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

没有警报

删除关于第二个问题,这里是你可以做什么:

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

它是从VBA代码的密码登录窗口。 – Adrian 2012-07-20 14:46:20

+0

我不明白你的问题。请尝试告诉我们出了什么问题。顺便说一句,我已经编辑我的答案与删除的解决方案 – JMax 2012-07-20 15:05:01

相关问题