Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改VBA Excel中显示用户窗体的值_Excel_Userform_Vba - Fatal编程技术网

如何更改VBA Excel中显示用户窗体的值

如何更改VBA Excel中显示用户窗体的值,excel,userform,vba,Excel,Userform,Vba,我有一个关于如何更改用户表单显示内容的问题。基本上,我有一个宏,其中一个用户表单允许用户选择用于流程的单元格范围。如果我在其他工作表中使用宏,则以前使用的范围仍然存在。例如,如果在表1中我选择了“A20:A30”,然后在表2中使用了相同的宏,则范围值仍然选择了表1中“A20:A30”的值。我知道选择我想要的范围很容易,但是我帮助的人希望每次运行宏时该范围为空,这样他就不必再次移动到活动工作表来选择范围 下面是一个图像示例。在工作表“CurveAstC”(按钮“Interpola”仅显示用户表单)

我有一个关于如何更改用户表单显示内容的问题。基本上,我有一个宏,其中一个用户表单允许用户选择用于流程的单元格范围。如果我在其他工作表中使用宏,则以前使用的范围仍然存在。例如,如果在表1中我选择了“A20:A30”,然后在表2中使用了相同的宏,则范围值仍然选择了表1中“A20:A30”的值。我知道选择我想要的范围很容易,但是我帮助的人希望每次运行宏时该范围为空,这样他就不必再次移动到活动工作表来选择范围

下面是一个图像示例。在工作表“CurveAstC”(按钮“Interpola”仅显示用户表单)中,我选择一个范围,然后单击按钮“Ejecutar”运行流程。然后,如果我转到工作表“Volatilidad”并运行该过程 用户表单将显示对工作表TC的引用,我希望它显示空白值或至少是对活动工作表的引用

这是用户表单的代码:

Public Sub CommandButton1_Click()

Dim rangoa As Range
Dim rangob As Range
Dim rangoc As Range

Set rangoa = Range(rangox.Value)
Set rangob = Range(rangoy.Value)
Set rangoc = Range(rangoxout.Value)

ventana.Hide
Run (I_Lineal(rangoa, rangob, rangoc))

End Sub

Private Sub Label1_Click()

End Sub

Private Sub Label3_Click()

End Sub

Private Sub rangox_BeforeDragOver(Cancel As Boolean, ByVal Data As MSForms.DataObject, ByVal x As stdole.OLE_XPOS_CONTAINER, ByVal y As stdole.OLE_YPOS_CONTAINER, ByVal DragState As MSForms.fmDragState, Effect As MSForms.fmDropEffect, ByVal Shift As Integer)

End Sub

Private Sub rangoxout_BeforeDragOver(Cancel As Boolean, ByVal Data As MSForms.DataObject, ByVal x As stdole.OLE_XPOS_CONTAINER, ByVal y As stdole.OLE_YPOS_CONTAINER, ByVal DragState As MSForms.fmDragState, Effect As MSForms.fmDropEffect, ByVal Shift As Integer)

End Sub

Private Sub UserForm_Click()

End Sub
Interpola按钮的代码非常简单,如下所示:

Sub corrermacro()
   ventana.Show
End Sub

您选择范围的用户表单称为“ventana”。

您仅将表单隐藏在sub的末尾。这将使其
不可见,但仍然存在(及其所有内容)。如果希望下次初始化表单时它为空,则应
卸载
表单:
卸载ventana

因此,您应该在sub的末尾添加该命令。只需知道表单上的所有数据在该命令之后不再可用。因此,此命令应该是子系统中的最后一个命令:

Public Sub CommandButton1_Click()

Dim rangoa As Range
Dim rangob As Range
Dim rangoc As Range

Set rangoa = Range(rangox.Value)
Set rangob = Range(rangoy.Value)
Set rangoc = Range(rangoxout.Value)

ventana.Hide
Run (I_Lineal(rangoa, rangob, rangoc))
Unload ventana

End Sub

请共享Interpola按钮的代码。@omegastripes Interpola按钮的代码就是ventana。show@omegastripes图像中的用户表单称为“ventana”,将代码放入用户表单的
Activate
事件中,以控制显示时的显示内容。