如何用VBA設計出一個可以輸入的資料視窗,畫面如下,當按下 [輸入資料] 的按鈕時,會出現一個 [輸入資料視窗],然後於輸入視窗內輸入資料,之後按下送出資料,資料會直接出現在A欄的最下面一行。
這邊先介紹單一資料的輸入法,待各位若熟悉之後,可自行練習,增加 文字方塊,並修改程式碼,就可以一次輸入多筆資料了。
[製作一個輸入資料視窗]
進入VBA 設計畫面內,設計出一個輸入資料視窗
並將控制項重新命名,方便之後程式設計
文字方塊=TB1
命令按鈕=CB1
輸入資料視窗=UF1
[將程式寫入 命令按鈕 內]
程式碼與說明如下
====================================================================
Private Sub CB1_Click()
'判斷A2這個欄位是否有資料,如果沒有資料則 [儲存格A2] 等於 TB1的資料
If Range("A2") = "" Then
Range("A2") = TB1
'如果不是
Else
'移到資料列的最底端在往下一格
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
'將TB1的資料帶入目前的位置
ActiveCell.Offset(0, 0).Range("A1").Value = TB1
End If
'輸入資料視窗消失
UF1.Hide
End Sub
====================================================================
[新增一個模組]
於VBAProject內新增一個模組
這個模組內的程式碼如下,名稱為 “U”
====================================================================
Sub U()
‘輸入資料視窗跳出
UF1.Show
End Sub
====================================================================
[設計工作表內的輸入按鈕]
於工作表內於 儲存格A1 輸入 “資料”,並插入一個圖案,圖案內輸入文字為 “輸入資料”
[將輸入資料鈕指定巨集]
於該輸入資料的按鈕,點右鍵,按下 [指定巨集] 後,會出現以下視窗,請選擇剛剛新增好的 [模組U]
並按下確定。
[開始使用]
完成上述的步驟後,即可以開始使用,按下 [輸入資料] 鈕,輸入完資料按下 [送出資料] ,即可將資料拋置A2儲存格,之後所輸入的資料會持續往下拋送。

*****
*****
*****
您好請問輸入資料後視窗會關閉,想要一直保持輸入該怎麼做呢
UF1.Hide 不要輸入上面這一句程式碼即可 拿掉後,若要關閉該輸入視窗,則直接按下該視窗右上角的x即可關閉。
您好,研究了很久,試不出來要如何一次輸入多筆資料,在測試總是儲存格亂跳,能請教一下嗎?感謝~
方便貼你的程式碼給我看嗎?
Private Sub CommandButton1_click() If Range("A2") = "" Then Range("C2") = TextBox1 Range("D2") = TextBox2 Range("E2") = TextBox3 Range("F2") = TextBox2 Else Range("A1:D1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Select ActiveCell.Offset(0, 0).Range("C1").Value = TextBox1 ActiveCell.Offset(0, 0).Range("D1").Value = TextBox2 ActiveCell.Offset(0, 0).Range("E1").Value = TextBox3 ActiveCell.Offset(0, 0).Range("F1").Value = TextBox4 End If UserForm1.Hide End Sub 感謝您~
Range("A1:D1").Select<===這一行改成 Range("C2").Select 應該就可以解決了 有沒有解決都回應我一下 謝謝
您好 後來發現在其他工作表作用就正常了,可能是因為原工作表先前有使用其他巨集導致 再次感謝您~
再請教 輸入資料的按鈕,有辦法固定在工作表的某個位置嗎? 謝謝~
兩種狀況 一種是執行完資料置入後,該按鈕跑掉,簡單的解法,但不是最佳解 錄製一段巨集,將該按鈕移到你想要停留的位置,然後再把這一段移動按鈕的巨集貼到你程式碼的END SUB 之前,這樣每次資料置入後,該按鈕就會強制回到你只掉的位置了 另一種狀況,是你視窗在移動,你想要按鈕不要動,這可能就要把按鈕放在某個位置,然後使用凍結視窗的方式,不管你視窗怎麼拉,按鈕都還是看的到 你再試試看吧~!
您好~請問commandbuttom可以設定成把資料傳輸到指定的工作頁嗎? 謝謝您!
可以的 這要在 Range("A2") 前面加上工作頁名稱即可 如 sheet1.Range("A2") 給你參考 謝謝
抱歉問個蠢問題 我最近剛開始學 我剛剛想把寫入範圍寫到B行 然後我改成下列這樣 Private Sub CB1_Click() '判斷A2這個欄位是否有資料,如果沒有資料則 [儲存格A2] 等於 TB1的資料 If Range("B2") = "" Then Range("B2") = TB1 '如果不是 Else '移到資料列的最底端在往下一格 Range("B1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select '將TB1的資料帶入目前的位置 ActiveCell.Offset(0, 0).Range("A1").Value = TB1 End If '輸入資料視窗消失 UF1.Hide End Sub 想請問一下那兩個A1為什麼不用改 我試過改了會亂跳 感謝