我创建了一个名为UIAutotestHeader
的用户表单和一个名为pypath
的文本框。然后在按钮上单击,我尝试将值传递给变量,但得到runtime error 424
。请帮忙。
Sub LoopThroughFiles()
Dim Path As String
UIAutotestHeader.Show
Path = pypath.Value
If pypath.Value = "" Then
MsgBox "Please add a path having .py files."
End If
End sub
按钮点击代码:
Private Sub CommandButton1_Click()
UIAutotestHeader.Hide
End Sub
答案 0 :(得分:1)
首先,请参阅有关使用UserForms的这一有用的RubberDuck Blog,它非常有用且适用。这就是我要基于的答案。
尝试使用public static function saveCompany( $params ) {
if( $params ){
echo $params->userCompany;
try {
JPDO::beginTransaction();
$c = new Company();
$c->setuserCompany( $params->userCompany );
$c->setName( $params->name );
$c->setCoords( $params->coords );
$c->setcompanyPic( $params->companyPic );
$c->save();
JPDO::commit();
}
catch ( JError $j ) {
JPDO::rollback();
return [99];
}
}
return [1];
}
语句实例化您的用户窗体,以便您拥有它的捕获实例,您可以在其中访问所公开的各种属性。
请注意,在这种情况下,您不必存储变量,因为您仍然可以在用户窗体实例中访问它们。这是下面的示例。
With
在用户窗体中,您可以公开要访问的属性。我还添加了Sub LoopThroughFiles()
With New UIAutotestHeader
.Show
If Not .IsCancelled Then
If .PyPath = "" Then
MsgBox "Please add a path having .py files."
End If
End If
End With
End Sub
方法,以确保用户没有按“取消”。
IsCancelled
答案 1 :(得分:0)
尝试此代码
'In Standard Module
'------------------
Public sPath As String
Sub LoopThroughFiles()
Load UIAutotestHeader
sPath = UIAutotestHeader.pypath.Value
UIAutotestHeader.Show
End Sub
'In UserForm Module
Private Sub pypath_AfterUpdate()
If sPath = "" Then
MsgBox "Please add a path having .py files."
End If
End Sub
Private Sub CommandButton1_Click()
If sPath <> "" Then MsgBox sPath
sPath = ""
Unload UIAutotestHeader
End Sub