Excel 2010 VBAmacros来更改另一个文件中模块的内容

我开发了一个macros来批量更新文件位置中的文件。 我使用下面的代码,这是完美的作品,但是脚本的编辑部分需要在每个文件中的VBA模块的变化,使呼叫编辑macros的变化工作。 如何在执行批量文件更新时大量更新模块内容。

Sub Auto_open_change() Dim WrkBook As Workbook Dim StrFileName As String Dim FileLocnStr As String Dim LAARNmeWrkbk As String PERNmeWrkbk = ThisWorkbook.Name FileLocnStr = "C:\Users\gornalla\Desktop\PER Update" 'ThisWorkbook.Path Dim StrFile As String StrFile = Dir(FileLocnStr & "\*.xlsm") Do While Len(StrFile) > 0 DoStuff (FileLocnStr & "\" & StrFile) StrFile = Dir Loop End Sub Private Sub DoStuff(StrFileName) Workbooks.Open (StrFileName) 'Workbooks(StrFileName).Activate ActiveSheet.Unprotect ("147258369") Sheets("Property Evaluation Report").Select ActiveSheet.Unprotect ("147258369") Call Edit ActiveWorkbook.RefreshAll Sheets("Property Evaluation Report").Select ActiveSheet.Protect Password:="147258369", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowUsingPivotTables:=True ActiveWorkbook.Close Application.SendKeys ("Enter") End Sub 

尽pipe可以通过使用代码来修改代码,但是使用它并不是一个好习惯(如果你坚持的话,请参阅这里和这里的一些参考资料)。 相反,最好将值存储在一个更可变的位置,并从那里引用它,或者将其作为用户的input进行捕获。

你可以从一个文本文件中读取数据,这个文件存储在一个普通的,不太可能改变的位置,虽然这增加了一个额外的复杂程度。 相反,我会build议只创build一个隐藏的列或隐藏的工作表,您可以在代码中引用。 要么你甚至可以locking和保护,而不是只是隐藏。

使用隐藏工作表或列的好处是数据附加到工作簿(外部文件不是),它也可以保持会话之间的变化。 您可以更新该字段中的值,以便下次访问该文件时,会记住您使用的最后一个文件。