Q:如何通过一个用户窗体录入数据,但是我又不想让人看到整个Excel工作薄。简单的说,就是打开某个Excel文件之后,我只看到一个用户窗体,然后我就通过该用户窗体录入数据,保存之后,所输入的数据就存在Excel文件里。
A:下面是详细的实现过程。
首先,准确一个用户窗体。 在VBE中,插入用户窗体,在其中添加控件,如下图所示。 编写代码: 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 说明:
接着,在工作簿Workbook_Open事件中编写代码。这样,在打开工作簿时,会自动执行Workbook_Open事件中的代码。 情形1:打开工作簿后,将工作簿界面最小化,只显示用户窗体。 Private Sub Workbook_Open() '最小化窗口 Application.WindowState = xlMinimized '显示用户窗体 UserForm1.Show End Sub 如果想要在关闭用户窗体后,工作簿也一起关闭,那么在用户窗体的关闭事件中,添加下面的代码: Private Sub UserForm_QueryClose(Cancel AsInteger, CloseMode As Integer) ThisWorkbook.Close End Sub 在关闭用户窗体时,Excel会提示用户是否保存对工作簿的修改,单击“是”保存工作簿并退出。 如果要在关闭用户窗体时默认自动保存工作簿,那么在用户窗体的关闭事件中,添加下面的代码: Private Sub UserForm_QueryClose(Cancel AsInteger, CloseMode As Integer) ThisWorkbook.Close SaveChanges:=True End Sub
情形2:打开工作簿后,该工作簿被彻底隐藏,只显示用户窗体。此时,可以将用户窗体当作用户输入输出界面,工作簿当作存储和处理后台数据的平台。 Private Sub Workbook_Open() '隐藏工作簿 Application.Visible = False '显示用户窗体 UserForm1.Show End Sub 此时,Excel将在后台运行,要退出这个Excel应用程序,必须结束其进程。
情形3:打开工作簿后,工作表均隐藏,但仍显示Excel程序界面,并显示用户窗体。
Private Sub Workbook_Open() Workbooks('Sample1.xls').Windows(1).Visible = False UserForm1.Show End Sub 此时,用户窗体中的“保存”按钮的代码最好修改如下: 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
本文属原创文章,转载请联系我(xhdsxfjy@163.com)或者注明出处。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 |
|