Q:如何通過(guò)一個(gè)用戶窗體錄入數(shù)據(jù),但是我又不想讓人看到整個(gè)Excel工作薄。簡(jiǎn)單的說(shuō),就是打開(kāi)某個(gè)Excel文件之后,我只看到一個(gè)用戶窗體,然后我就通過(guò)該用戶窗體錄入數(shù)據(jù),保存之后,所輸入的數(shù)據(jù)就存在Excel文件里。
A:下面是詳細(xì)的實(shí)現(xiàn)過(guò)程。
首先,準(zhǔn)確一個(gè)用戶窗體。 在VBE中,插入用戶窗體,在其中添加控件,如下圖所示。 編寫(xiě)代碼: Private Sub CommandButton1_Click() Dimi As Long i =Worksheets('sheet1').Range('A' &Rows.Count).End(xlUp).Row IfRange('A1') = '' Then Range('A1') = TextBox1.Text Else i = i 1 Range('A' & i) = TextBox1.Text EndIf TextBox1.Text = '' TextBox1.SetFocus End Sub 說(shuō)明:
接著,在工作簿Workbook_Open事件中編寫(xiě)代碼。這樣,在打開(kāi)工作簿時(shí),會(huì)自動(dòng)執(zhí)行Workbook_Open事件中的代碼。 情形1:打開(kāi)工作簿后,將工作簿界面最小化,只顯示用戶窗體。 Private Sub Workbook_Open() '最小化窗口 Application.WindowState = xlMinimized '顯示用戶窗體 UserForm1.Show End Sub 如果想要在關(guān)閉用戶窗體后,工作簿也一起關(guān)閉,那么在用戶窗體的關(guān)閉事件中,添加下面的代碼: Private Sub UserForm_QueryClose(Cancel AsInteger, CloseMode As Integer) ThisWorkbook.Close End Sub 在關(guān)閉用戶窗體時(shí),Excel會(huì)提示用戶是否保存對(duì)工作簿的修改,單擊“是”保存工作簿并退出。 如果要在關(guān)閉用戶窗體時(shí)默認(rèn)自動(dòng)保存工作簿,那么在用戶窗體的關(guān)閉事件中,添加下面的代碼: Private Sub UserForm_QueryClose(Cancel AsInteger, CloseMode As Integer) ThisWorkbook.Close SaveChanges:=True End Sub
情形2:打開(kāi)工作簿后,該工作簿被徹底隱藏,只顯示用戶窗體。此時(shí),可以將用戶窗體當(dāng)作用戶輸入輸出界面,工作簿當(dāng)作存儲(chǔ)和處理后臺(tái)數(shù)據(jù)的平臺(tái)。 Private Sub Workbook_Open() '隱藏工作簿 Application.Visible = False '顯示用戶窗體 UserForm1.Show End Sub 此時(shí),Excel將在后臺(tái)運(yùn)行,要退出這個(gè)Excel應(yīng)用程序,必須結(jié)束其進(jìn)程。
情形3:打開(kāi)工作簿后,工作表均隱藏,但仍顯示Excel程序界面,并顯示用戶窗體。
Private Sub Workbook_Open() Workbooks('Sample1.xls').Windows(1).Visible = False UserForm1.Show End Sub 此時(shí),用戶窗體中的“保存”按鈕的代碼最好修改如下: Private Sub CommandButton1_Click() Dimi As Long Workbooks('Sample1.xls').Windows(1).Visible = True i =Workbooks('Sample1.xls').Worksheets('Sheet1').Range('A'& Rows.Count).End(xlUp).Row
IfRange('A1') = '' Then Range('A1') = TextBox1.Text Else i = i 1 Range('A' & i) = TextBox1.Text EndIf Workbooks('Sample1.xls').Windows(1).Visible = False
TextBox1.Text = '' TextBox1.SetFocus End Sub
本文屬原創(chuàng)文章,轉(zhuǎn)載請(qǐng)聯(lián)系我(xhdsxfjy@163.com)或者注明出處。 歡迎在下面留言,完善本文內(nèi)容,讓更多的人學(xué)到更完美的知識(shí)。 |
|