如何使用VBA在新文件中创建新宏



我需要在Excel中的VBA新文件中分配新的宏到新的底部换句话说,我想在按下按钮(运行宏)时创建一个新文件,该文件包含一个将运行预定义宏的按钮。

Sub Shapes()
'Shape 1 Test_Shape
ActiveSheet.Shapes.AddShape(msoShapeBevel, 85.25, 0, 120, 30).Select
Selection.OnAction = "Macro1"
End sub 
'___________________________________________________________________________
Sub Macro1()
'For Example
Cells.Select
End Sub 

有人能帮我吗?

TNX

我搜索了英语和波斯语的许多网站,但我没有得到一个好的结果只要文件没有以新名称保存,一切都很好;但是,当我以新名称保存文件时,宏不再工作(它们不会从原始文件转移到新文件)。

在Excel先生上有一个答案可以帮助你:从工作簿导出模块到工作簿

下面是代码,请根据您的具体需求进行调整

'Copy macro from main file to extract
Dim strModuleName As String
Dim strFolder As String
Dim strTempFile As String
ThisWorkbook.Activate              '<= changed
strFolder = ThisWorkbook.Path      '<= changed
If Len(strFolder) = 0 Then strFolder = CurDir
strFolder = strFolder & ""
strTempFile = strFolder & "~tmpexport.bas"
On Error Resume Next
ThisWorkbook.VBProject.VBComponents("Alloc_Date_Button").Export strTempFile '<= changed

'AMEND THE EXPORTED MACRO TO NEW NAME
Dim objFSO
Const ForReading = 1
Const ForWriting = 2
Dim objTS 'define a TextStream object
Dim strContents As String
Dim fileSpec As String

fileSpec = ThisWorkbook.Path & "~tmpexport.bas"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(fileSpec, ForReading)
strContents = objTS.ReadAll
strContents = Replace(strContents, "Alloc_Date_Button", "Alloc_Date_Button_Export")
strContents = Replace(strContents, "ALLOC_DATE_UPDATE", "ALLOC_DATE_UPDATE_EXPORT")

objTS.Close

Set objTS = objFSO.OpenTextFile(fileSpec, ForWriting)
objTS.Write strContents
objTS.Close

Output.VBProject.VBComponents.Import strTempFile '<= changed
Kill strTempFile
On Error GoTo 0

不幸的是,建议的方法对我没有用处。我用另一种方法解决了我的问题。在我的模块中,而不是把结果放在一个新文件中,我把信息放在一个新的表格中,最后我删除了额外的表格,并以新的名称保存了文件。就这样,我的问题解决了。谢谢您的合作

相关内容

  • 没有找到相关文章

最新更新