excel - 运行时用户表单 - 访问数据输入
问题描述
我正在使用以下代码在运行时构建用户表单(可变数量的输入框):
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)
但我所做的一切似乎都不起作用,所以我怎样才能指向文本框中的数据,以便我可以将输入数据粘贴到工作表中的某处?
解决方案
你可以做类似的事情
ws.Range("A" & i).Value = Me.Controls("inputBx" & CStr(i)).Value
推荐阅读
- python - 如何按元素长度对列表列表进行分类?
- spring-boot - 无法使用 Spring Cloud 连接 AWS SES
- php - 迁移和初始化数据库不工作 Laravel
- c# - 为什么将 1 添加到 byte.MaxValue 会导致 256 而不是溢出
- laravel - 谷歌日历 api 不显示组织者名称和发送通知电子邮件 - laravel
- java - 设置文本框后如何清除字符串?
- angularjs - 错误:[$injector:modulerr] angularjs 1.7 和 jasmine
- android - 多个 SQLiteOpenHelper 实现,但只有一个类的 oncreate 被调用
- qt - 如何正确清除 QML 菜单
- sql - IBM DB2 中除以 NULL