他山之石――VBA文本框

匿名 (未验证) 提交于 2019-12-03 00:39:02

继续学习VBA!

'**********************文字框控件*************** ' 显示   '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   '二 功能    '1 自动跳到一下个tab顺序的控件      'AutoTab属性设置为true,当文字框输入字符数大于    '2 锁定文本和禁用       'locked属性为true时,显示正常,可以选取,可以复制,但不能编辑。       'enable属性为false时,显示灰色,不能选取    '3 是否允许拖放复制值       'DragBehavior 属性值为1时,可以进行拖放        '三 常用方法和属性    '1 lineCount属性:获得文本框的行数    '2 SelLength属性可以获得当前文本框中选取的文本长度    '3 SelText,可以获得当前文本框中选取的文本    '4 SetFocus 获得焦点    Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)     ' TextBox2 = TextBox3.SelLength & ":" & TextBox3.SelText & ":" & TextBox3.SelStart    End Sub    Private Sub UserForm_Click()  End Sub  '四 事件   '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
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 金额_Change()  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 If End Sub  Private Sub 数量_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)    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


转载请标明出处:他山之石――VBA文本框
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!