gpt4 book ai didi

excel - 将用户表单复制到另一个工作簿

转载 作者:行者123 更新时间:2023-12-04 21:15:25 28 4
gpt4 key购买 nike

我已经寻找过这个问题的答案,但找不到任何与我正在寻找的完全匹配的东西,如果有人有答案或者可以指出我回答这个问题的方向,那就是非常感激。

我一直在讨论构建一个将数据输入工作簿并成功构建它的解决方案,但是它需要添加到的工作簿是一个非常活跃的工具,并且会不断更新新/更改的数据,所以我有在工作簿的副本中构建它,现在需要将其添加到事件工作簿中。我知道一个简单的方法是简单地从事件工作簿中获取数据并将其添加到我的版本中,然后使我的版本成为事件书籍,但是这将是一项相当大的工作,我只能将工作簿脱机~ 5 分钟,所以我想更简单的方法是将我的代码和用户表单复制到事件电子表格中。该代码很容易复制和粘贴,但我找不到将用户表单(格式和所有内容)复制到工作簿中的方法,有没有办法将其导出然后将其导入实时工作簿?

我希望这清楚易懂,如果我需要澄清任何事情,请告诉我。

最佳答案

我将向您展示如何在 VBA 中导出和导入用户表单,然后在其他工作簿中重新导入:

Option Explicit 

Public Function CopyUserForm(ByVal FormName$, Optional ByVal WB_Dest As Workbook) As Workbook 'copies sheets/Thisworkbook/Userforms/Modules/Classes to a new workbook

Dim Comp As VBComponent
Dim CompStr$

On Error Resume Next 'needed for testing if component already exists in destination WorkBook, and vbe minimizing

If WB_Dest Is Nothing Then Set WB_Dest = Application.Workbooks.add

For Each Comp In ThisWorkbook.VBProject.VBComponents
With Comp

If .Type = vbext_ct_MSForm Then '=3

If .Name = FormName Then

'// Export Form
CompStr = "C:\" & .Name ' & " " & Replace(Date, "/", "-") & ".frm"
.Export FileName:=CompStr 'this line fails if the destination Disk is protected, wich happened on my system disk :/

'// Import Form to new workbook
WB_Dest.VBProject.VBComponents.Import FileName:=CompStr

'// Kill temporary Form Files
Kill CompStr: Kill CompStr & ".frx"

Exit For

End If

End If

End With 'comp

Next Comp

Err.Clear: On Error GoTo 0

Set CopyComponentsModules = WB_Dest

Set Comp = Nothing
Set WB_Dest = Nothing

End Function

然后你可以像这样调用函数: CopyUserForm "UserForm1" , 例如。

关于excel - 将用户表单复制到另一个工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44479289/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com