首页 > 解决方案 > 运行时用户表单 - 访问数据输入

问题描述

我正在使用以下代码在运行时构建用户表单(可变数量的输入框):

Private sub Userform_Initialize()

Dim num as Long
Dim i as long

Dim inputBx as Control

num = 10
For i=1 to num

'Referencing the name of textboxes for later

Set inputBx = Controls.Add("Forms.TextBox.1","inputBx" & i)
With inputBx
.Height = 20
.Width = 100
.Left = 20
.Top = 20 * i
End With

Next i

这完美地工作,它创建了我想要的盒子。我还在useform中手动创建了一个按钮来提交这些框中的输入,但我似乎无法让它在我想要的地方写入数据。这是我尝试过的

Private Sub SubmitButton_click()

Dim ws as Worksheet
Set ws = Workseets("Test")

For i = 1 to num
ws.Range("A" & i).Value = "inputBx"&i.Value

Next i
End Sub

我也试过用这些来看看我是否能看到那里有什么数据

MsgBox(Me.inputBx1) 
MsgBox(Me.inputBx1.Value)
MsgBox(inputBx1.Value)

但我所做的一切似乎都不起作用,所以我怎样才能指向文本框中的数据,以便我可以将输入数据粘贴到工作表中的某处?

标签: excelvba

解决方案


你可以做类似的事情

ws.Range("A" & i).Value = Me.Controls("inputBx" & CStr(i)).Value

推荐阅读