减少代码冗余 机房

妖狐艹你老母 2022-05-09 05:33 369阅读 0赞

一:防止往下拉菜单输入:

  1. Private Sub comboRelation2_KeyPress(KeyAscii As Integer) '防止输入字符
  2. KeyAscii = 0 'keyAscii=0?表示:取消本次输入的字符
  3. End Sub

二:定义一个检查文本框是否为空的函数:

在模块中设函数:

  1. Public Function testtxt(txt As String) As Boolean '参数是txt,即文本框内容
  2. If Trim(txt) = "" Then
  3. testtxt = False
  4. Else
  5. testtxt = True
  6. End If
  7. End Function

调用函数判断是不是为空(不仅仅限用文本框)

  1. If Not testtxt(Combouser.Text) Then
  2. MsgBox "请选择用户级别!", vbOKOnly + vbExclamation, "提示"
  3. Combouser.SetFocus
  4. Exit Sub
  5. End If

三:设置case1:

  1. Case1:
  2. With MSHFlexGrid1
  3. .Rows = 1
  4. .TextMatrix(0, 0) = "序列号"
  5. .TextMatrix(0, 1) = "教师"
  6. .TextMatrix(0, 2) = "级别"
  7. .TextMatrix(0, 3) = "注册日期"
  8. .TextMatrix(0, 4) = "注册时间"
  9. .TextMatrix(0, 5) = "注销日期"
  10. .TextMatrix(0, 6) = "注销时间"
  11. .TextMatrix(0, 7) = "机器名"
  12. .TextMatrix(0, 8) = "状态"
  13. End With

在同一个事件下面直接调用:GoTo Case1

四:限制特殊字符输入:

在模块中定义这个函数:

  1. Public Function IsNumber(KeyAscii As Integer) As Integer
  2. Select Case KeyAscii
  3. Case 48 To 57 '只能输入数字
  4. Case 65 To 90 '只能输入大写字母
  5. Case 97 To 122 '只能输入小写字母
  6. Case 8 '只能输入退格
  7. Case Else
  8. KeyAscii = 0 '无效
  9. End Select
  10. End Function

在窗体中调用函数:

  1. Private Sub txtid_KeyPress(KeyAscii As Integer)
  2. Call IsNumber(KeyAscii)
  3. If Len(txtID) >= 3 Then
  4. txtID.Text = ""
  5. KeyAscii = 0 '输入字符清零
  6. MsgBox "输入字符位数过长", vbOKCancel, "提示"
  7. End If
  8. End Sub

不能输入特殊字符,也不能超过三个数。

五:导出为Excel:

在模块中放置:

  1. Public Function EduceExcel(myGrid As MSFlexGrid) '定义导出Excel函数
  2. Dim xlexc As New Excel.Application '声明Excel对象
  3. Dim xlbook As Excel.Workbook '声明工作簿对象
  4. Dim xlsheet As Excel.Worksheet '声明工作表单
  5. Dim i As Integer
  6. Dim j As Integer
  7. If myGrid.Text = "" Then
  8. MsgBox "没有记录可导出", vbOKOnly + vbExclamation, "警告"
  9. Exit Function
  10. Else
  11. Set xlexc = CreateObject("excel.application") '调用Excel程序
  12. Set xlbook = xlexc.Workbooks.Add(1) '创建新的空白簿
  13. Set xlsheet = xlbook.Worksheets(1) '创建新的工作表单
  14. For i = 0 To myGrid.Rows - 1
  15. '填入数据
  16. For j = 0 To myGrid.Cols - 1
  17. xlsheet.Cells(i + 1, j + 1) = myGrid.TextMatrix(i, j) 'cell(a,b)表示a行,b列,这样写是因为vb中默认是从0开始的,而Excel是从1开始的
  18. Next j
  19. Next i
  20. xlexc.Visible = True '显示Excel表格
  21. Set xlexc = Nothing '交还控制给Excel
  22. End If
  23. End Function

在窗体上调用:

  1. Private Sub CmdDerive_Click()
  2. Call EduceExcel(MSFlexGrid1)
  3. End Sub

发表评论

表情:
评论列表 (有 0 条评论,369人围观)

还没有评论,来说两句吧...

相关阅读