一个VBA代码保存在A工作簿,使其能增加一个选择打开B工作簿并在打开的B工作簿运行保存在A工作簿的代码新代码
时间: 2024-02-27 19:51:31 浏览: 26
可以使用下面的VBA代码实现:
```
Sub AddCodeToAnotherWorkbook()
Dim wb As Workbook
Dim codeModule As CodeModule
Dim newProcedure As String
'打开另一个工作簿
Set wb = Workbooks.Open("B工作簿路径")
'在另一个工作簿中添加新代码
Set codeModule = wb.VBProject.VBComponents("A工作簿代码模块").CodeModule
newProcedure = "Sub NewProcedure()" & vbNewLine _
& "'在此处添加新代码" & vbNewLine _
& "End Sub"
With codeModule
.InsertLines .CountOfLines + 1, newProcedure
End With
'关闭另一个工作簿
wb.Close SaveChanges:=True
End Sub
```
这段代码会打开B工作簿,然后在B工作簿中添加保存在A工作簿的新代码,最后关闭B工作簿。注意替换代码中的路径和新代码的内容为实际的值。
相关问题
一个VBA代码保存在A工作簿,先需要增加一个代码使其选择打开B工作簿并在打开的B工作簿运行保存在A工作簿的代码
可以使用下面的VBA代码实现:
```
Sub RunCodeInAnotherWorkbook()
Dim wb As Workbook
Dim codeModule As CodeModule
'打开另一个工作簿
Set wb = Workbooks.Open("B工作簿路径")
'在另一个工作簿中运行代码
Set codeModule = wb.VBProject.VBComponents("A工作簿代码模块").CodeModule
codeModule.Run "保存在A工作簿的代码名称"
'关闭另一个工作簿
wb.Close SaveChanges:=True
End Sub
```
这段代码会打开B工作簿,然后在B工作簿中运行保存在A工作簿的指定代码,最后关闭B工作簿。注意替换代码中的路径和代码名称为实际的值。
现已经有一个完整的Vba代码,如何添加一段代码,使其能增加一个选择打开工作簿并在打开的工作簿运行代码
要实现这个功能,可以使用VBA中的Workbooks.Open方法来打开另一个工作簿,并在该工作簿中运行代码。以下是示例代码:
```
Sub OpenAndRunCode()
Dim wb As Workbook
Dim filePath As String
'获取要打开的工作簿的路径
filePath = Application.GetOpenFilename("Excel 文件 (*.xlsx), *.xlsx")
'如果用户取消了选择,则退出子程序
If filePath = "False" Then Exit Sub
'打开工作簿
Set wb = Workbooks.Open(filePath)
'在打开的工作簿中运行代码
wb.Run "MacroName"
'关闭打开的工作簿
wb.Close SaveChanges:=False
End Sub
```
在上面的代码中,我们首先使用Application.GetOpenFilename方法获取要打开的工作簿的路径。如果用户取消了选择,则退出子程序。然后,我们使用Workbooks.Open方法打开选定的工作簿,并在其中运行名为"MacroName"的宏。最后,我们关闭打开的工作簿,不保存任何更改。
你可以将上面的代码添加到你已有的VBA代码中,并将"MacroName"替换为你要在打开的工作簿中运行的宏的名称。然后,你可以在需要的时候调用OpenAndRunCode子程序,以选择要打开的工作簿并在其中运行代码。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)