2
用户窗体有个文本框控件,想将它和某个单元格绑定,现在不知道如何去设置这个ControlSource属性,谢谢
Me.TextBox1.ControlSource = _
Application.Cells(1, 5).Address(True, True, , True)
ControlSource 属性
参阅 示例 应用于 特性
标识用于设置或储存控件中 Value 属性的数据位置。ControlSource 属性可接受 Microsoft Excel 工作表区域。
语法
object.ControlSource [= String]
ControlSource 属性的语法有以下几个成分:
成分 说明
object 必需。一个有效对象。
String 可选。指定链接到控件 Value 属性的工作表单元格。
说明
ControlSource 属性可标识某单元格或字段;但它不包含存储于该单元格或字段中的数据。如果更改控件的 Value 值,该更改将自动地反映在相链接的单元格或字段中。同样地,如果更改相链接的单元格或字段中的值,此更改也将自动地反映在控件的 Value 值中。
不能为 ControlSource 指定另一个控件,否则会产生错误。
ControlSource 的默认值为一空字符串。如果 ControlSource 包含一个非空的字符串,它将标识被链接的单元格或字段。当控件被加载时,该单元格或字段中的内容会被自动复制到 Value 属性中。
注意 如果 Value 属性为 Null,则由 ControlSource 所标识的位置中不存在任何数值。
Private Sub CommandButton1_Click()
ListBox1.AddItem 1
ListBox1.ControlSource = "a3"
End Sub
|
没有具体的对象。即:具体的工作表名称。
lstbooks.RowSource = "A2:F200" |
'Me.ListBox1.ControlSource = ws1.Range("h8:k8")
'ListBox1.RowSource = ws1.Range("h8:k8")
'ListBox1.ControlSource = Array(1, 2, 3)
'''Me.TextBox1.ControlSource = "sheet1!G1"
'ListBox1.ControlSource = "sheet1!a1:a4"
'ListBox1.ControlSource = Application.Cells(1, 5).Address(True, True, , True)
''''''ListBox1.RowSource = "sheet1!a1:a4"
''''''ListBox1.RowSource = "new射击模拟!n7:n10"
ComboBox1.RowSource = "new射击模拟!n7:n10"
特别注意点1
rowSource指定后,不可以在additem removeitem
所以我在这个例子里,用的是 循环 additem的方式
特别注意点2
rowsource的指定是表格写法 rowsource="sheet1!A1:A9"
而不是VBA的写法 rowsource= worksheets().range()
赋值方法差别
additem
deleteitem
rowSource 的不能改了
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 2 '设列表为2列
For i = 2 To Range("A65536").End(xlUp).Row '根据A列行数决定循环次数
ListBox1.AddItem '添加一行记录.这一句是关键,
ListBox1.List(ListBox1.ListCount - 1, 0) = Range("A" & i) '新添加的一行第一列数据
ListBox1.List(ListBox1.ListCount - 1, 1) = Range("D" & i) '新添加的一行第二列数据
Next
End Sub
Private Sub ListBox1_Change()
TextBox1 = ListBox1.List(ListBox1.ListIndex, 0) & " " & ListBox1.List(ListBox1.ListIndex, 1) '——文本框=列表选中行
End Sub
TextBox1 = ListBox1.List(ListBox1.ListIndex, 0) |
Private Sub UserForm_Initialize() '窗体加载事件
Dim Arr, Res
Res = Range("A2").CurrentRegion
ReDim Arr(1 To UBound(Res), 1 To 2)
For i = 1 To UBound(Res)
Arr(i, 1) = Res(i, 1)
Arr(i, 2) = Res(i, 4)
Next i
ListBox1.List = Arr
End Sub
rowSource 还可以指定 columncount 但是不能 columnSource
用ADDITEM 和 LIST(?,?)来赋值吧。
不知道有没有一步到位的做法。
3
ComboBox1.Value
.caption
这几个很有用
controlsource
要先清除ComboBox2内容
Private Sub ComboBox1_Change()
If ComboBox1.Value = 1 Then
With ComboBox2
.Clear
.AddItem "1"
.AddItem "2"
.AddItem "3"
End With
ElseIf ComboBox1.Value = 2 Then
With ComboBox2
.Clear
.AddItem "4"
.AddItem "5"
End With
End If
End Sub
4
Private Sub UserForm_Initialize() '坑爹的userform 和 userform1
Set ws1 = Worksheets("new射击模拟")
5 常用判断
Select Case ComboBox1.Value
Case Is = "库1"
Label32.Caption = "这边选的是:" & ComboBox1.Value
Case Is = "库2"
Label32.Caption = "这边选的是:" & ComboBox1.Value
Case Is = "库3"
Label32.Caption = "这边选的是:" & ComboBox1.Value
Case Is = "库4"
Label32.Caption = "这边选的是:" & ComboBox1.Value
End Select
选择型 if
排他性