我正在尝试打开多个Excel文件(97,2003,2007,2010 ..等),编辑它们并保存它们。如果我打开Visual Basic编辑器(Alt + F11)并要求在开始时启用宏,我的宏工作,但如果我的VB编辑器关闭,它会打开文件并停止保存第一个文件。
我使用这个命令:
Set OpenWB = Workbooks.Open(FilePath)
其中OpenWB
被声明为Workbook
个对象。这工作正常,甚至打开宏文件而不被问到?但是当我打开Visual-Basic编辑器(Alt-F11)并且我有
然后我编辑数据。然后使用此命令保存:
' Save File
OpenWB.Save
代码尝试保存,但然后在那里打破。我试过启用&禁用Application.DisplayAlerts
(True / False)。
问题是,我无法在VB编辑器打开的情况下运行它,因为我需要禁用宏警告,因为我有1000多个文件。然而,如果没有它打开代码,就不会传递保存代码行。
部分代码示例:
'Path
FilePath = FL.Cells(FileListCount, 1).Value
' Begin first loop
While FilePath <> ""
' Alerts?
Application.DisplayAlerts = False
' Open File
Set OpenWB = Workbooks.Open(FilePath)
' Alerts
Application.DisplayAlerts = True
' Enter Replacement Loop
ReplacementCount = 1
ID = Ctrl.Cells(ReplacementCount + 11, 2).Value
While ID <> ""
OpenWB.Sheets(Ctrl.Cells(ReplacementCount + 11, 4).Value).Range(Ctrl.Cells(ReplacementCount + 11, 5).Value).Value = Ctrl.Cells(ReplacementCount + 11, 3).Value
ReplacementCount = ReplacementCount + 1
ID = Ctrl.Cells(ReplacementCount + 11, 2).Value
Wend
' Save File
OpenWB.Save
' Close file
OpenWB.Close
' status
FL.Cells(FileListCount, 2).Value = "***** UPDATED *****"
' Increment counter
FileListCount = FileListCount + 1
' Call new path
FilePath = FL.Cells(FileListCount, 1).Value
Wend
答案 0 :(得分:0)
这是未经测试的。
你已经尝试过了:
Workbooks.Open(FilePath)
Set OpenWB = ActiveWorkbook.ActiveSheet
'ur goes here code
OpenWB.Activate
ActiveWorkbook.Close SaveChanges:=True
它将消除保存和关闭线。