该代码本质上是复制数据、创建按钮并将关联的 VBA 代码传输到新工作簿,从而允许您保存具有与原始工作簿相同功能的新工作簿。
将原始工作簿的“Hub”工作表中的 A 列数据复制到 AK 列。
创建一个新工作簿 (wb2) 并将复制的数据粘贴到其第一个工作表中。
在新工作簿 (wb2) 中创建一个新按钮,标题为“保存文件”。
将宏“CommandButton1_Click”分配给新创建的按钮。这个宏应该在原始工作簿中。
从原始工作簿导出与原始按钮关联的 VBA 代码,并将其另存为“ExportedCode.bas”在指定的 SharePoint 位置。
将导出的 VBA 代码(“ExportedCode.bas”)导入到新工作簿 (wb2) 的 VBA 项目中。
使用指定的文件名和格式(启用宏的工作簿 - .xlsm)将新工作簿保存在同一 SharePoint 位置。
这是我不断收到的代码
运行时错误50035:对象“__VBComponents”的导出方法 失败了
Sub CommandButton1_Click()
Dim wb1 As Workbook
Dim ws1 As Worksheet
Dim wb2 As Workbook
Dim filePath As String
Dim fileName As String
Set wb1 = ThisWorkbook
Set ws1 = wb1.Sheets("Hub")
filePath = ""C:\Users\elyon\OneDrive\Desktop\TRYING PLEASE\""
fileName = Format(ws1.Range("B2"), "DD-MMM-YYYY") & "-" & ws1.Range("C2") & ".xlsm"
ws1.Range("A:AK").Copy
Set wb2 = Workbooks.Add
With wb2.Sheets(1).Range("A1") ' Specify the destination cell for pasting
.PasteSpecial xlValues
.PasteSpecial xlFormats
End With
' Create a new button in wb2
Dim newButton As Object
Set newButton = wb2.Sheets(1).Buttons.Add(10, 10, 100, 30)
newButton.Name = "CommandButton" ' Change the button name if desired
newButton.Caption = "Save the File" ' Change the button caption if desired
' Assign the macro to the new button (replace "YourOriginalMacroName" with the actual macro name)
newButton.OnAction = "CommandButton1_Click"
' Export the VBA code associated with the original button from the original workbook
wb1.VBProject.VBComponents("Sheet1").Export filePath & "ExportedCode.bas"
' Import the VBA code into the new workbook
wb2.VBProject.VBComponents.Import filePath & "ExportedCode.bas"
Application.DisplayAlerts = False
wb2.SaveAs fileName:=filePath & fileName, FileFormat:=52
Application.DisplayAlerts = True
wb2.Close
End Sub
有人可以帮我解决这个问题吗?谢谢你
它告诉您尝试保存导出模块的位置无效。两个最可能的原因:
filePath = ""C:\Users\elyon\OneDrive\Desktop\TRYING PLEASE\""
应该是 filePath = "C:\Users\elyon\OneDrive\Desktop\TRYING PLEASE\"