簡體   English   中英

如何更改在 VBA Excel 中顯示用戶窗體的值

[英]How to change the values that shows a UserForm in VBA Excel

我對如何更改用戶表單顯示的內容有疑問。 基本上我有一個宏,其中一個用戶表單讓用戶選擇用於該過程的單元格范圍。 然后,如果我在其他工作表中使用宏,則之前使用的范圍仍然存在。 例如,如果在工作表 1 中我選擇了“A20:A30”,然后我在工作表 2 中使用相同的宏,則范圍值仍然選擇了工作表 1 的“A20:A30”的值。我知道選擇范圍很容易我想要,但我幫助的人希望每次運行宏時范圍都是空白的,這樣他就不必再次移動到活動工作表來選擇范圍。

這是一個帶有圖像的示例。 在“CurvasTC”表(“Interpola”按鈕僅顯示用戶表單)中,我選擇一個范圍並單擊“Ejecutar”按鈕運行該過程。 然后,如果我轉到“Volatilidad”工作表並運行該過程,則用戶表單將顯示對工作表 TC 的引用,我希望它顯示空白值或至少顯示對活動工作表的引用。

運行 1

運行 2

這是用戶表單的代碼:

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”。

您只是將表單隱藏在子文件的末尾。 這將使其invisible但仍然存在(及其所有內容)。 如果您希望下次初始化表單時它為空白,那么您應該unload表單: Unload 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM