我是一个数据库(5列' s行是自适应的)。此数据按以下顺序排序:姓名,姓氏,出生日期和促销年份。 我还制作了一个基于Listbox的Userform,它可以显示这4个信息。
现在,我想使用userform中的复选框和文本框编辑此数据库。 我已经创建了用户表单,但问题仍然存在于将userform的数据(checkbox:true或false和textbox)传输到相应单元格(右侧人员)的数据库中。
知道我应该如何思考或解决这个问题?我已经尝试了一些东西,但我无法显示可以传输AND和复选框以及文本框信息的解决方案。
格尔茨 Userform Layout
答案 0 :(得分:0)
假设第5列为A(状态)
|状态|名称|姓| DOB |年|
Checkbx1数据转到A(状态)
Textbx1数据转到B(名称)
Textbx2数据转到C(姓氏)
Textbx3数据转到D(DOB)
Textbx4数据转到E(年)
"您可以将此代码分配给命令按钮"
'数据传输
如果Form1.checkbox1 = TRUE则
Shee1.Range(" A&#34)。完(xlDown).Offset(1)。选择
Activecell.value ="真"
否则
Activecell.value ="假"
结束如果
'将名称转移到B
ActiveCell.Offset(0,1).Value = StrConv(TextBox1,vbProperCase)
'将姓氏转移到C
ActiveCell.Offset(0,2).Value = StrConv(TextBox2,vbProperCase)
'将DOB转移到D
ActiveCell.Offset(0,3).Value = StrConv(TextBox3,vbProperCase)
'将年份转移到E
ActiveCell.Offset(0,4).Value = StrConv(TextBox4,vbProperCase)
答案 1 :(得分:0)
您可以使用此代码填充列表
Private Sub UserForm_Initialize()
Sheets("Sheet1").Range(Sheets("Sheet1").UsedRange.Address).Name = "MyList"
ListBox1.ColumnCount = Range("MyList").Columns.Count
ListBox1.RowSource = "MyList"
End Sub
然后使用下面的代码查找并选择工作表中的数据行
If ListBox1.ListIndex < 0 Then
MsgBox " Select a row first !"
Exit Sub
Else
Cells.Find(What:=ListBox1.List(ListBox1.ListIndex), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=True, SearchFormat:=False).Activate
Cells.FindNext(After:=ActiveCell).Activate
然后使用Offset将数据从UserForm传输到工作表
ActiveCell.Offset(0, 4).Value = UserForm1.TextBox1.Text
ActiveCell.Offset(0, 5).Value = UserForm1.Checkbox1.value
ActiveCell.Offset(0, 6).Value = UserForm1.optionbutton1.value