VBA入门到进阶常用知识代码总结56

第56集 文字框
263、 显示相关设置
一 显示
1、多行显示
MultiLine 属性值为true时,可以多行显示文本
2、文本框对齐
左右对齐可以用TextAlign对齐,但上下对齐则没有相应的属性设置
3、密码样式
可以设置passwordChar属性来隐藏输入的内容
4、行列超过宽度或高度时添加滚动条
ScrollBars 属性可以设置垂直和水平滚动条
5、强制换行符号
EnterKeyBehavior的属性值为TRUE时,可以强制换行.按回车即可以转到下一行.
如果用代码 , 可以借用回车符来实现转行
Private Sub CommandButton1_Click()
TextBox2 = “excelpx” & Chr(10) & “.com” 'Cha(10)换行符
End Sub
264、 功能设置
1、自动跳到一下个tab顺序的控件
AutoTab属性设置为true,当文字框输入字符数大于最大长度时MaxLength,自动跳转到下一个文字框。
2、锁定文本和禁用
locked属性为true时,显示正常,可以选取,可以复制,但不能编辑。
enable属性为false时,显示灰色,不能选取
3、是否允许抹黑拖动复制值
DragBehavior 属性值为1时, 可以进行拖放
265、 常用方法和属性
1、lineCount属性:获得文本框的行数
2、SelLength属性:可以获得当前文本框中选取的文本长度
3、SelText:可以获得当前文本框中选取的文本
4、SetFocus:获得焦点,光标自动定位到文本框中
266、 事件
1、当文本框值发生改变量时的事件
Private Sub 用户名_Change()
MsgBox 123
End Sub
2、当离开文本框时,如果数据发生了改变,则发生此事件
Private Sub TextBox1_AfterUpdate()
MsgBox 123
End Sub
3、焦点进入文本框时的事件
Private Sub 用户名_Enter()
MsgBox “我是用户名。”
End Sub
4、离开文本框时的事件
Private Sub 用户名_Exit(ByVal Cancel As MSForms.ReturnBoolean) '必须输入用户名
If 用户名.Text = “” Then
Cancel = True
MsgBox “你没有输入用户名,不能跳过” & Chr(10) & “请输入内容”
End If
End Sub
'Cancel参数常用于取消该事件的发生,本事件是指取消离开动作,禁止离开

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) '密码必须输入数字
If Not VBA.IsNumeric(TextBox1.Value) And TextBox1.Value <> “” Then
Cancel = True
MsgBox “密码只能输入数字,请重新输入”
End If
End Sub
267、 示例演示
窗体打开时入库日期显示为当前日期,根据表格G、H列商品名称和单价,输入商品名时自动输入单价,输入数量时自动计算金额,离开数量文字框时将信息写入单元格中。
VBA入门到进阶常用知识代码总结56
Option Explicit
Dim d As Object
Private Sub UserForm_Initialize()
Dim arr, x
日期 = Date
Set d = CreateObject(“scripting.dictionary”)
arr = Sheets(“sheet3”).Range(“G2:H4”)
For x = 1 To UBound(arr)
d(arr(x, 1)) = arr(x, 2)
Next x
End Sub
Private Sub 商品_Exit(ByVal Cancel As MSForms.ReturnBoolean) '根据商品查找单价
'提取商品单价
If d.Exists(商品.Value) Then
单价 = d(商品.Value)
Else
MsgBox “该商品单价不存在,请重新输入”
Cancel = True
End If
End Sub
Private Sub 数量_Change() '输入数量后自动计算金额
If VBA.IsNumeric(数量.Value) Then
金额 = 数量 * 单价
End If
End Sub
Private Sub 数量_Exit(ByVal Cancel As MSForms.ReturnBoolean) '离开数量后就自动输入到单元格中
Dim myrow As Long, x
If VBA.IsNumeric(数量.Value) Then
With Sheets(“sheet3”)
myrow = .Range(“a65536”).End(xlUp).Row + 1
.Cells(myrow, 1) = 日期
.Cells(myrow, 2) = 商品
.Cells(myrow, 3) = 数量.Value
.Cells(myrow, 4) = 单价.Value
.Cells(myrow, 5) = 金额.Value
End With
商品 = “”
Else
MsgBox “数量不能为非数字,请重新输入”
Cancel = True
End If
End Sub