我有以下表格,有三个子表格:
右上角的按钮在Excel中打开用户窗体。我希望userform已经拥有这些子表单中的一些选定的值。但是,我无法在我的VBA代码中引用子表单中的记录。我已成功地从主窗体传输值,例如名称等,但不是子窗体中的值。访问代码:
Option Compare Database
Private Sub Toggle159_Click()
Dim abc As String
abc = Me.CompanyName
Dim xlApp As Object 'Excel.Application, xlWB As Excel.Workbook
Dim xlWB As Object
Set xlApp = CreateObject("Excel.Application")
Set xlWB = xlApp.Workbooks.Open("C:\NA\eb\quotegenv2.xlsm") ' specify file
xlApp.Visible = True
xlApp.Run "Module3.showFormWithValues", abc
End Sub
在上面的代码中,CompanyName是mainform的控件。此代码运行正常,但我尝试使用'me.subformname.form.controlname'引用子窗体中的项目,但控件名称未出现在建议中。
模块的excel代码:
' placed in code Module3
Sub showFormWithValues(txt1 As String)
With UserForm1
.ClientName.Text = txt1
End With
UserForm1.Show
End Sub
感谢任何帮助。
答案 0 :(得分:0)
您已尝试在表单打开前设置ClientName
。
使用模块3顶部的全局变量在showFormWithValues
和表单之间共享数据。
在第一个程序之前Module3
的顶部作为公共变量,如下例所示: -
Option Explicit
Public StrCN As String
Sub showFormWithValues(txt1 As String)
...
End Eub
在UserForm1
添加(或更新,如果已存在)以下内容: -
Private Sub UserForm_Activate()
Me.ClientName.Text = Module3.StrCN
End Sub