Forms 在excel中使用宏为窗体命名

Forms 在excel中使用宏为窗体命名,forms,vba,excel,Forms,Vba,Excel,目前,我有一个大约有20个表单的项目,有时我想对它们进行一些小的调整。所以我创建了一段代码来删除表单,然后按照我想要的方式重新创建它们 问题是有一行代码不断给我路径/文件访问错误(错误75) 这是一小段代码: Sub makeForm(formName As String) Dim form As Object 'These lines delete the old form Set form = ThisWorkbook.VBProject.VBComponents

目前,我有一个大约有20个表单的项目,有时我想对它们进行一些小的调整。所以我创建了一段代码来删除表单,然后按照我想要的方式重新创建它们

问题是有一行代码不断给我路径/文件访问错误(错误75)

这是一小段代码:

Sub makeForm(formName As String)

    Dim form As Object

    'These lines delete the old form
    Set form = ThisWorkbook.VBProject.VBComponents(formName)
    ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=form    

    'This line creates the new form
    Set form = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)

    'These lines give the new form a few properties
    With form
        .Properties("Name") = formName 'This is the line of code that gives the error
        .Properties("Caption") = formName
        .Properties("Width") = 320
        .Properties("Height") = 242
    End With

End Sub
有人能告诉我如何确保这个错误不再出现吗?顺便说一下,当我在宏失败后手动更改窗体名称时,也会出现此错误,但在宏失败前手动更改窗体名称时,则不会出现此错误


PS:我是这个网站的新手,如果我犯了新手错误,非常抱歉。

删除用户表单后保存工作簿似乎可以清除错误

'These lines delete the old form
Set form = ThisWorkbook.VBProject.VBComponents(formName)
ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=form
Set form = Nothing

ThisWorkbook.Save

我猜Excel在保存时会刷新一些内部值。

删除用户表单后保存工作簿似乎可以清除错误

'These lines delete the old form
Set form = ThisWorkbook.VBProject.VBComponents(formName)
ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=form
Set form = Nothing

ThisWorkbook.Save

我猜Excel在保存时会刷新一些内部值。

根据您的经验,您不能在文档中进行设计更改。为什么不重命名现有表单?为什么不更改现有表单的属性?我需要能够检索表单以使用它们。目前,我使用这些名称来确保检索到正确的表单,因此需要为新表单指定我想要的名称。根据您的要求,不能在文档中进行设计更改。为什么不重命名现有表单?为什么不更改现有表单的属性?我需要能够检索表单以使用它们。目前,我使用这些名称来确保检索到正确的表单,因此需要为新表单指定我想要的名称。根据您的要求,不能在文档中进行设计更改。为什么不重命名现有表单?为什么不更改现有表单的属性?我需要能够检索表单以使用它们。目前,我使用这些名称来确保检索到正确的表单,因此需要为新表单指定我想要的名称。执行这些表单需要很长时间,但它可以正常工作。谢谢你的帮助!它需要很长时间来执行,但它是有效的。谢谢你的帮助!它需要很长时间来执行,但它是有效的。谢谢你的帮助!