Vba 如何从userform打开文件并在userform打开时对其进行修改

Vba 如何从userform打开文件并在userform打开时对其进行修改,vba,excel,Vba,Excel,我有一个带有复选框、文本字段和常规内容的用户表单,其中包括一个我想用来打开excel spredsheet的按钮。这很容易做到: Private Sub CMB2_Click() Workbooks.Open Filename:="G:\Formular.xlsm" End Sub 但这样做时,文件无法处理;换句话说,它不是活动的。“发件人”处于活动状态,在关闭或取消窗体之前,文件将被锁定。我称之为锁定,因为没有更好的描述 如果我使表单无模式,表单中的所有字段都会失去其功能,除了按钮,

我有一个带有复选框、文本字段和常规内容的用户表单,其中包括一个我想用来打开excel spredsheet的按钮。这很容易做到:

Private Sub CMB2_Click()
    Workbooks.Open Filename:="G:\Formular.xlsm"
End Sub
但这样做时,文件无法处理;换句话说,它不是活动的。“发件人”处于活动状态,在关闭或取消窗体之前,文件将被锁定。我称之为锁定,因为没有更好的描述

如果我使表单无模式,表单中的所有字段都会失去其功能,除了按钮,但至少我可以在打开的电子表格中工作

UserForm1.Show vbModeless

我怎样才能两者兼得?我想在打开的电子表格中工作,完成后继续表单。

您必须在新的excel实例中打开其他文件。下面的代码将为您执行此操作

Dim xlApp as Excel.Application
set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.Workbooks.Open FileName:="G:\Formular.xlsm"

我无法重现这种行为。我可以在打开的工作簿上工作,同时所有控件(复选框、文本框、按钮)都能正常工作…这很奇怪。。。我在Office2007和2010上都试过,两次它都会锁定打开的文件。你在哪个版本上测试过?我在xl2010BRILLIANT中测试过。。非常感谢。在Office2007中工作,在2010年也可以使用它?@Sinbad是的,这种方法在Excel 2010中也可以使用。记住
xlApp。退出
,最后
设置xlApp=Nothing