vba窗体

Private Sub CommandButton1_Click()
‘ If IsDate(TextBox1.Text) = False Then
‘ MsgBox "请输入日期!"
‘ Exit Sub
‘ End If
If 类别 = "" Or 维修部件 = "" Or 部门 = "" Or 申请人 = "" Or 资产编号 = "" Or 维修数量.Value = "" Then
MsgBox "请完整输入,重新输入!"
Exit Sub
End If
Dim i&, r&, sh As Worksheet
On Error Resume Next
Set sh = Sheets("维修申请单")
If Not sh Is Nothing Then
With sh
r = .Range("b65536").End(xlUp).Row + 1
.Cells(r, 1) = 维修编号.Text
.Cells(r, 2) = 部门.Text
.Cells(r, 3) = 申请人.Text
.Cells(r, 4) = 类别.Text
.Cells(r, 5) = 维修部件.Text
.Cells(r, 8) = 资产编号.Text
.Cells(r, 7) = 维修数量.Value
.Cells(r, 6) = 简要描述.Text
.Cells(r, 9) = Worksheets("参数1").Cells(2, 3)

End With
MsgBox "数据录入成功!", , "系统提示"
End If
End Sub
Private Sub CommandButton2_Click()

Set sh = Sheets("维修申请单")
arr = sh.Range("A2").Resize(Range("b65536").End(xlUp).Row + 1, 8) ‘Range("b65536").End(xlUp).Row A列最后一个非空单元格的行号
For i = 1 To UBound(arr)
If Str(arr(i, 1)) = Str(维修编号.Text) Then
维修编号 = arr(i, 1)
部门 = arr(i, 2)
申请人 = arr(i, 3)
类别 = arr(i, 4)
维修部件 = arr(i, 5)
资产编号 = arr(i, 8)
维修数量 = arr(i, 7)
简要描述 = arr(i, 6)
End If
: Next
If 维修编号 = "" Then MsgBox "订单号:" & TextBox2 & " 不存在!", , "系统提示": Exit Sub
End Sub
Private Sub CommandButton3_Click()
Set sh = Sheets("维修申请单")
If Not sh Is Nothing Then
arr = sh.Range("A2").Resize(Range("A65500").End(3).Row + 1, 8)
For i = 1 To UBound(arr)
If Str(arr(i, 1)) = Str(维修编号.Text) Then
arr(i, 1) = 维修编号.Text
arr(i, 2) = 部门.Text
arr(i, 3) = 申请人.Text
arr(i, 4) = 类别.Text
arr(i, 5) = 维修部件.Text
arr(i, 8) = 资产编号.Text
arr(i, 7) = 维修数量.Value
arr(i, 6) = 简要描述.Text

sh.Range("A2").Resize(Range("A65500").End(3).Row + 1, 8) = arr
End If: Next: End If
MsgBox "维修编号: " & 维修编号 & " 数据已修改!", , "系统提示"
End Sub
Private Sub CommandButton4_Click()
Set sh = Sheets("维修申请单")
If Not sh Is Nothing Then
arr = sh.Range("A2").Resize(Range("A65500").End(3).Row + 1, 8)
For i = 1 To UBound(arr)
If Str(arr(i, 1)) = Str(维修编号.Text) Then
sh.Rows(i + 1).Delete
N = arr(i, 1)
End If: Next: End If
If N = "" Then MsgBox "维修编号:" & 维修编号 & " 不存在!", , "系统提示": Exit Sub
MsgBox "维修编号:" & N & " 已删除!", , "系统提示"
End Sub

Private Sub CommandButton5_Click()
Dim i, num1, k
num1 = Sheets("维修申请单").Cells(65536, 1).End(xlUp).Row
Worksheets("维修核查单").Unprotect Password:="111111" ‘取消密码保护
Worksheets("维修审核单").Unprotect Password:="111111"
Sheets("维修核查单").Range("2:65536").Clear ‘从第二行开始清空工作表
Sheets("维修审核单").Range("2:65536").Clear
For i = 1 To num1
For k = 1 To 9
Sheets("维修核查单").Cells(i, k) = Sheets("维修申请单").Cells(i, k)
Sheets("维修审核单").Cells(i, k) = Sheets("维修申请单").Cells(i, k)
Next k
Next i
Worksheets("维修核查单").Protect Password:="111111" ‘添加密码保护
Worksheets("维修审核单").Protect Password:="111111"
Worksheets("维修申请单").Protect Password:="111111" ‘密码保护
‘收集硬件信息
Call hardwareinfo ‘保存硬件信息
Unload Me

ThisWorkbook.Save ‘保存

ThisWorkbook.Close ‘关闭工作簿

End Sub

Private Sub UserForm_Initialize()
With Sheets("参数1") ‘部门combox项目
s = ","
For i = 2 To .Cells(65535, 1).End(xlUp).Row
If InStr(1, s, "," & .Cells(i, 1).Text & ",") = 0 Then
部门.AddItem .Cells(i, 1).Text
s = s & .Cells(i, 1).Text & ","
End If
Next i
End With

With Sheets("参数2") ‘类别combox项目
s = ","
For i = 2 To .Cells(65535, 1).End(xlUp).Row
If InStr(1, s, "," & .Cells(i, 1).Text & ",") = 0 Then
类别.AddItem .Cells(i, 1).Text
s = s & .Cells(i, 1).Text & ","
End If
Next i
End With

维修编号.Value = Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time) & Second(Time)
Worksheets("维修申请单").Unprotect Password:="111111" ‘取消密码保护

End Sub

Private Sub 部门_Change()
申请人.Clear
pm = 部门
d = ""
For i = 2 To 1000
Set c = Worksheets("参数1").Range("a" & i).Find(pm)
If Not c Is Nothing Then
If c.Offset(0, 1) <> d Then
d = c.Offset(0, 1)
申请人.AddItem d
End If
End If
Next
End Sub

Private Sub 类别_Change()
维修部件.Clear
pm = 类别
d = ""
For i = 2 To 1000
Set c = Worksheets("参数2").Range("a" & i).Find(pm)
If Not c Is Nothing Then
If c.Offset(0, 1) <> d Then
d = c.Offset(0, 1)
维修部件.AddItem d
End If
End If
Next
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ‘让窗体的关闭按钮失效
If CloseMode <> 1 Then
Cancel = 1 ‘禁用窗体右上角的“×”
End If
End Sub

时间: 2024-10-13 02:04:54

vba窗体的相关文章

【VBA研究】EXCEL启动时自动启动窗体

作者:iamlaosong VBA编程时为了界面美观,我们经常用到窗体Form,那么,如何做到让VBA窗体在EXCEL启动时自动运行呢? 方法有二,第一,双击ThisWorkbook,输入以下代码(Open事件): Private Sub Workbook_Open() UserForm1.Show End Sub 第二,也可以插入一个模块,输入下面自启动代码: Sub Auto_Open() UserForm1.Show End Sub 两种方法都可以启动VBA窗体.上面两个过程其实就是一个自

VB6制作的自定义ocx控件

下载后,解压缩,有一个TreeviewExplorer.ocx文件 在Excel的开发工具选项卡,点击插入ActiveX控件 VBA窗体,VB6窗体.VB.Net窗体都可以使用这个自定义控件的功能. 下载: TreeviewExplorer.rar 原文地址:https://www.cnblogs.com/ryueifu-VBA/p/9094051.html

VBA: 错误消息:&quot;类未注册&quot;插入用户窗体

症状 当您尝试插入用户窗体,当您在 Microsoft Visual Basic 编辑器中一在这篇文章,或者在您试图打开的文档包含用户窗体的开头列出的产品时,您可能会收到以下错误消息: 类没有注册.寻找与 CLSID 的对象: {AC9F2F90-E877-11CE-9F68-00AA00574A4F} 或 类没有注册.寻找与 CLSID 的对象: {C62A69F0-16DC-11CE-9E98-00AA00574A4F} 当您单击帮助,将显示以下消息: 不存在帮助主题.您的应用程序供应商联系

Excel VBA入门(十)用户窗体开发

VBA 中的用户窗体就是指带 UI 的用户界面,在运行的时候会单独弹出一个窗口,类似于在 windows 系统中运行的一个可执行程序一样(这个说法不太严谨,因为可执行程序也可能是只有命令窗口而没有 UI 的).再具体一点,就是一个窗口界面当中,有可能会包含有文本框.复选框.单选按钮.下拉列表,就如在网页中填写的表单一样.再具体一点,就是如下图这样的: 1. 用户界面设计 如上图,UI 设计的部分其实是很简单的,微软的特色,直接拖拉拽就可以实现了.而每一个控件(或者称为元素,也即放进窗体中的各种按

VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)

前几天发了一篇博文,是关于获取VB类模块成员函数指针的内容(http://www.cnblogs.com/alexywt/p/5880993.html):今天我就发一下我的应用实例. VB中默认是没有鼠标移出事件响应的,而这个事件其实在项目开发中,实用性很强,很多时候需要在鼠标移出窗体或控件时做些事情:没有这个事件会感觉很费力: 今天我所说的实际案例就是,在窗体上,设计一个SplitterBar控件,窗体的最终用户使用这个控件可以在运行程序时任意调整其内部控件大小. 我在第二篇参考博文作者开发的

Ruby操作VBA的注意事项和技巧:乱码、获取VBA活动和非活动窗口的名称与路径、文件路径的智能拼接与截取(写入日期)、宏里调用和控制窗体以及窗体上的控件、不同workbook之间的宏互相调用、

1.VBA编辑器复制粘贴出来的代码乱码     解决方法:切换到中文输入模式再复制出来就行了 2.获取VBA活动和非活动窗口的名称与路径 1 1 Dim wbpath, filename As String 2 2 wbpath = ThisWorkbook.Path ’这个获取的是宏所在的workbook的路径 3 3 'filename = ThisWorkbook.Name '这个是宏所在的workbook的名字,不带路径 4 4 filename = ActiveWindow.Capti

VBA调用DOS程序两种方法

Set wsh = VBA.CreateObject("WScript.Shell") 'wsh.Run strExePath & " g", vbHide, True Set wshOut = wsh.exec(strExePath & " g").StdOut While Not wshOut.AtEndOfStream sLine = wshOut.ReadLine Debug.Print sLine Wend run可以隐

VBA续嘘嘘

什么是VBA?它有什么作用? A.实现Excel中没有实现的功能. B.提高运行速度. C.编写自定义函数. D.实现自动化功能. E.通过插入窗体做小型管理软件. VBA在哪里存放的?怎么运行? A.模块中 在Excel 2010中若没有"开发工具"项,通过"文件"--"选项"--"自定义功能区"--选中"开发工具"--"确定"(图1). (注:为了提高word2010中插入的图片的质

AutoCAD VBA学习_2015.7.13晚

1.VBA工程常用到三种INSERT:窗体.模块还有一个VBA自带的ThisDrawing 窗体,很简单,学过VB都懂 模块就好像一个仓库,为窗体.ThisDrawing的代码区提供丰富的函数.过程 ThisDrawing,通过小量的实践,我把他当作VBA的入口,相当于C的main函数(如有不对请纠正),在这个代码区输入: 就可以在程序刚开始运行的时候启动窗体了. Option Explicit Sub Start() UserForm1.Show '窗体名 End Sub 2.获取鼠标在CAD