2015-06-02 32 views
0

我想將項目添加到excel工作表中的文本框中找到的組合框中,該文本框位於用戶窗體中當按鈕被單擊時.i查看添加到組合框的值,但當我關閉並重新打開工作簿時它將變爲空。任何一個人幫我處理這個?如何將項目添加到按鈕單擊上的組合框?

感謝ü爲你快速響應第一

感謝你們既爲您反饋和correction.let我做出更加明確我的關心

+0

歡迎來到SO。請發佈您的代碼(以及可能的截圖),以便我們幫助您查看它。您可以通過問題旁邊的「編輯」鏈接添加代碼。並請閱讀:[堆棧溢出問題清單](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)。謝謝。 – nhee

回答

0

使用明確的問題,總是張貼相關的代碼,所以這對其他人來說很容易解決。

如果您想在執行用戶表單時看到數據,只需在userform_activate或Initialize中寫入所需的數據即可。在執行之前,它將採取值並顯示在組合框中。

您從工作表中取得的輸入只是在另一個工作表中寫入這些值,以便無論何時打開工作簿,這些值都不會被擦除。

1
  1. 創建工作簿並保存爲xlsm。
  2. 在第一個工作表中定義的用戶名如下: 名稱:dn_cmb_items 範圍:=""
  3. 使用開發商色帶添加一個Excel(不的ActiveX)組合框到Worksheet1和列表的範圍設定爲dn_cmb_items
  4. 打開VBA編輯器並將用戶表單添加到工作簿中,將其命名爲frm_add_cmb_item並將ShowModal設置爲False
  5. 將一個文本框放到窗體中並將其命名爲tb_item_text
  6. 將一個按鈕放到窗體上,將其命名爲cmb_add,並從其上下文菜單中選擇View code。這會創建click事件處理程序。
  7. 如下實現的處理程序:
 
    Private Sub cmb_add_Click() 
     Dim v_r As Range, v_n As Name 
     Set v_n = Names("dn_cmb_items") 
     If v_n.Value = "=""""" Then 
     v_n.Value = "=" & Worksheets(1).Name & "!$A$1:$A$1" 
     v_n.RefersToRange.Value = tb_item_text.Text 
     Else 
     Set v_r = v_n.RefersToRange 
     Set v_r = v_r.Cells(v_r.Rows.Count + 1, 1) 
     v_r.Value = tb_item_text.Text 
     v_n.Value = "=" & Worksheets(1).Name & "!$A$1:" & v_r.Address(True, True) 
     End If 
    End Sub 
  • 拖放到workshet一個按鈕,然後創建/設置在工作簿中的宏。使用代碼frm_add_cmb_item.Show實現創建的宏。
  • Debug菜單的VBA編輯器中選擇Compile。然後保存VBAProject以及工作簿。這就是編碼。
  • 切換到工作表,顯示錶單。
  • 現在,當您向文本框輸入一些內容時,然後單擊cmb_add按鈕,一個新項目將被添加到末尾的A列,從而更改分配給工作表上組合框的值dn_cmb_items。 見所附的screenshorts:
  • 初始狀態: Initial state

    1加入: Add 1

    2加入: Add 2

    PS 我有準備工作簿的所有碼。我應該在哪裏上傳?

    相關問題