excel中点击按钮,完成如下工作: 1、将输出工作表“已运行时间”列清零 2、根据输出工作表中的“模具号”列中填写的模具号对当前工作表中相对应的模具号的开始时间和结束时间,判断其是否满足“结束时间>开始时间>输出工作表的维护日期“,如是,则将”结束时间-开始时间“累加到输出工作表对应模具号的”已运行时间“,如不是,跳过
时间: 2024-04-13 16:27:51 浏览: 66
以下是实现你描述的功能的一个示例VBA宏代码:
```vba
Sub ProcessData()
Dim startTime As Date
Dim endTime As Date
Dim maintenanceDate As Date
Dim runTime As Double
Dim moldNumber As String
' 清空输出工作表的“已运行时间”列
Sheets("输出工作表").Range("已运行时间").ClearContents
' 遍历当前工作表中的每一行
For i = 2 To Sheets("当前工作表").Cells(Rows.Count, 1).End(xlUp).Row
' 获取当前行的模具号、开始时间和结束时间
moldNumber = Sheets("当前工作表").Cells(i, "A").Value
startTime = Sheets("当前工作表").Cells(i, "B").Value
endTime = Sheets("当前工作表").Cells(i, "C").Value
' 在输出工作表中找到对应模具号的维护日期
maintenanceDate = Application.VLookup(moldNumber, Sheets("输出工作表").Range("模具号和维护日期"), 2, False)
' 判断结束时间>开始时间>维护日期
If endTime > startTime And startTime > maintenanceDate Then
' 累加运行时间到输出工作表中对应模具号的“已运行时间”
runTime = Sheets("输出工作表").Range("已运行时间").Find(moldNumber).Offset(0, 1).Value
runTime = runTime + (endTime - startTime)
Sheets("输出工作表").Range("已运行时间").Find(moldNumber).Offset(0, 1).Value = runTime
End If
Next i
End Sub
```
请根据你的实际需求修改以下内容:
- 将 "输出工作表" 和 "当前工作表" 替换为你实际使用的工作表名称。
- 将 "已运行时间"、"模具号和维护日期"、"模具号" 替换为你实际使用的列范围或列名称。
然后,在宏编辑器中保存宏,将其关联到按钮,点击按钮时将执行这段代码。这段代码将会完成你描述的任务:清空输出工作表的已运行时间列,并根据当前工作表中模具号对应的开始时间和结束时间判断是否满足条件,并将累计的运行时间写入输出工作表对应模具号的已运行时间列。
阅读全文