![](/img/trans.png)
[英]How To: Excel VBA Command Button Enters UserForm Values to Current Row?
[英]How to change the values that shows a UserForm in VBA Excel
我對如何更改用戶表單顯示的內容有疑問。 基本上我有一個宏,其中一個用戶表單讓用戶選擇用於該過程的單元格范圍。 然后,如果我在其他工作表中使用宏,則之前使用的范圍仍然存在。 例如,如果在工作表 1 中我選擇了“A20:A30”,然后我在工作表 2 中使用相同的宏,則范圍值仍然選擇了工作表 1 的“A20:A30”的值。我知道選擇范圍很容易我想要,但我幫助的人希望每次運行宏時范圍都是空白的,這樣他就不必再次移動到活動工作表來選擇范圍。
這是一個帶有圖像的示例。 在“CurvasTC”表(“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”。
您只是將表單隱藏在子文件的末尾。 這將使其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.