复制按钮以在不同的 Excel 工作表中具有相同的功能

问题描述 投票:0回答:1

该代码本质上是复制数据、创建按钮并将关联的 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

有人可以帮我解决这个问题吗?谢谢你

excel vba button vba7
1个回答
0
投票

它告诉您尝试保存导出模块的位置无效。两个最可能的原因:

  1. 在您问题的代码示例中,文件路径字符串周围有双语音标记,即
    filePath = ""C:\Users\elyon\OneDrive\Desktop\TRYING PLEASE\""
    应该是
    filePath = "C:\Users\elyon\OneDrive\Desktop\TRYING PLEASE\"
  2. 话虽如此,这可能只是您问题中的一个拼写错误,真正的问题可能是您的桌面上不存在“TRYING PLEASE”文件夹(或者这是您桌面的错误路径)
© www.soinside.com 2019 - 2024. All rights reserved.