Excel:当工作表中有4个表时,如何使用VBA打开数据输入表单

时间:2015-07-20 08:53:05

标签: excel forms vba

我有一张excel工作表,有四个表,每个地区一个(苏格兰,北,伦敦,南)。我需要创建一个数据输入表单,允许用户填充这些表。理想情况下,一旦按下按钮,表单将出现在不同的工作表上。我想有四个不同的按钮,每个按钮链接到四个表中的一个。表格具有相同的列。

最好的方法是什么?我可以使用Excel的内置数据输入表单,通过单击表格然后按表格。然而,这几乎打败了形式的目的,sicne的想法是让用户端。

我已经看过创建自己的表单的教程,但是我需要有关如何根据按下的按钮填充不同表的信息。

提前致谢。

2 个答案:

答案 0 :(得分:0)

现在好了它的不同代码,但你应该能够根据你的形式进行调整。

Private Sub CommandButton1_Click()
Dim Inp1 As String
Dim Inp2 As String

Inp1 = TextBox1.Text

Inp2 = TextBox2.Text

Range("B2").Select
Do While ActiveCell.Value <> 0
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Inp1

Range("C2").Select
Do While ActiveCell.Value <> 0
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Inp2

End Sub

答案 1 :(得分:0)

在提出问题后,我设法找到了解决方案。我会把它包括在内,因为这似乎是一个没有在线答案的问题。代码将在本教程中显示的示例中使用:

https://www.youtube.com/watch?v=5oXcct1mOUw

“提交”按钮的代码如下所示。这是9或10个返回的代码,但可以轻松调整

Private Sub CommandButton1_Click()

Dim ws As Worksheet
Set ws = Worksheets("Current")

'Add new row
ws.ListObjects("Table1").ListRows.Add (1)

'Populate new row
ws.ListObjects("Table1").DataBodyRange(1, 1).Value = Me.name1.Value
ws.ListObjects("Table1").DataBodyRange(1, 2).Value = Me.namecom.Value
ws.ListObjects("Table1").DataBodyRange(1, 3).Value = Me.cin.Value
ws.ListObjects("Table1").DataBodyRange(1, 4).Value = Me.hold.Value
'DROPDOWN BOX
ws.ListObjects("Table1").DataBodyRange(1, 5).Value = Me.fee.Value
ws.ListObjects("Table1").DataBodyRange(1, 6).Value = Me.unam.Value
ws.ListObjects("Table1").DataBodyRange(1, 7).Value = Me.capfin.Value
ws.ListObjects("Table1").DataBodyRange(1, 8).Value = Me.month.Value
ws.ListObjects("Table1").DataBodyRange(1, 9).Value = Me.comments.Value


MsgBox "Data added", vbOKOnly + vbInformation, "Data Added"

'clear the data

Me.name1.Value = ""
Me.namecom.Value = ""
Me.cin.Value = ""
Me.hold.Value = ""
'DROPDOWN BOX
Me.fee.Value = ""
Me.unam.Value = ""
Me.capfin.Value = ""
Me.month.Value = ""
Me.comments.Value = ""

Me.name1.SetFocus

`