【发布时间】:2014-07-29 11:15:18
【问题描述】:
我是 VB 的初学者,但在开发表单时遇到了一些麻烦。我想要实现的是表单,点击时:
验证四个文本框和九个组合框,确保它们在提交到 MS Excel 工作表之前都有值 如果有空字段,应该出现一个消息框告诉用户“文本框和/或下拉框必须包含数据”(或类似的东西) 假设所有字段都有值,工作簿必须不受保护 然后必须将数据输入到 Excel 表中(每个表单提交等于一行数据,不能被后续条目覆盖)。 必须再次保护工作簿 完成所有操作后,必须隐藏表单。
到目前为止,这是我的代码。我确信它非常简单并且可以提高效率 - 欢迎任何建议。提前感谢您的帮助。
Private Sub CommandButton1_Click()
Sheet2.Unprotect
Dim LastRow As Object
Set LastRow = Sheet2.Range("a65536").End(xlUp)
LastRow.Offset(1, 0).Value = ExpRecDrop.Text
Set LastRow = Sheet2.Range("b65536").End(xlUp)
LastRow.Offset(1, 0).Value = CPName.Text
Set LastRow = Sheet2.Range("c65536").End(xlUp)
LastRow.Offset(1, 0).Value = ConEntDrop.Text
Set LastRow = Sheet2.Range("d65536").End(xlUp)
LastRow.Offset(1, 0).Value = ResTypDrop.Text
Set LastRow = Sheet2.Range("e65536").End(xlUp)
LastRow.Offset(1, 0).Value = LangDrop.Text
Set LastRow = Sheet2.Range("f65536").End(xlUp)
LastRow.Offset(1, 0).Value = WritDrop.Text
Set LastRow = Sheet2.Range("g65536").End(xlUp)
LastRow.Offset(1, 0).Value = OwnerDrop.Text
Set LastRow = Sheet2.Range("i65536").End(xlUp)
LastRow.Offset(1, 0).Value = BiRiDrop.Text
Set LastRow = Sheet2.Range("j65536").End(xlUp)
LastRow.Offset(1, 0).Value = ERTextBox.Text
Set LastRow = Sheet2.Range("k65536").End(xlUp)
LastRow.Offset(1, 0).Value = DueDatDrop.Text
Set LastRow = Sheet2.Range("l65536").End(xlUp)
LastRow.Offset(1, 0).Value = SubTypDrop.Text
Set LastRow = Sheet2.Range("o65536").End(xlUp)
LastRow.Offset(1, 0).Value = CommText.Text
Sheet2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Me.Hide
MsgBox "One record written to the 2014 tab"
End Sub
这是我的第一篇文章,如果您需要更多信息,请告诉我。
【问题讨论】:
-
欢迎来到 Stack Overflow!你已经为你的项目写了一个很好的描述,并包含了你的程序的 sn-p,做得很好。现在,由于这是一个问答网站,我会要求您编辑您的帖子并添加我们可以回答的实际 问题 或 问题。请参阅this 作为参考。
标签: vba validation excel