Excel 自动启动宏并检查一些参数
我有一个问题我想解决,但我需要帮助。我有一个excel,里面有很多信息:Excel 自动启动宏并检查一些参数,excel,vba,foreach,Excel,Vba,Foreach,我有一个问题我想解决,但我需要帮助。我有一个excel,里面有很多信息:日期、活动、人员、时间。每个人都写自己的工作,所以表格是这样的 20/06/2013 football me 8.00 21/06/2013 football me 8.00 22/06/2013 basket me 8.00 21/06/2013 football me 8.00 22/06/2013 basket me 8.00 从周一到周五。总小时数必须为40小时,所有字段
日期、活动、人员、时间
。每个人都写自己的工作,所以表格是这样的
20/06/2013 football me 8.00
21/06/2013 football me 8.00
22/06/2013 basket me 8.00
21/06/2013 football me 8.00
22/06/2013 basket me 8.00
从周一到周五。总小时数必须为40小时,所有字段必须填写完整,且没有一个字段为空!我需要一个宏,自动启动,例如在12.00,并检查它是否为每个人的工作表内的所有正确的。我怎么做?有人能帮我吗?假设在每张工作表中,第1行有一个行标题,数据在A2:D6中。以下代码应相应地以
msgbox
的形式返回错误
Sub test()
Dim i As Integer
Dim j As Integer
Dim emp As Boolean
Dim sum As Integer
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
emp = False
For i = 2 To 6
For j = 1 To 4
If IsEmpty(ws.Cells(i, j)) Then
emp = True
'Skip the rest of cells
GoTo fHandler
End If
Next j
Next i
fHandler:
If emp Then
MsgBox "Some entries are empty in " & ws.Name
End If
sum = WorksheetFunction.sum(ws.Range("D2:D6"))
If sum <> 40 Then
MsgBox "Total hours not equal to 40 in " & ws.Name
End If
Next
End Sub
子测试()
作为整数的Dim i
作为整数的Dim j
作为布尔值的Dim emp
点心作为整数
将ws设置为工作表
对于ActiveWorkbook.Worksheets中的每个ws
emp=False
对于i=2到6
对于j=1到4
如果是空的(ws.Cells(i,j)),那么
emp=真
“跳过其余单元格
后藤·汉德勒
如果结束
下一个j
接下来我
fHandler:
如果是emp那么
MsgBox“&ws.Name”中的某些条目为空
如果结束
sum=工作表函数.sum(ws.Range(“D2:D6”))
如果总数是40那么
MsgBox“总小时数不等于40英寸”&ws.Name
如果结束
下一个
端接头
请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。此外,询问代码的问题必须表明对正在解决的问题的最低理解,以及一些研究和尝试。您没有演示上述任何一项,因此我投票决定按现状结束,不幸的是,我现在没有任何代码,因为这几乎是我第一次使用vba编程。如果可能的话,我需要一个“开始”。这个问题并不难;我有4个单元格:日期、活动、人员、小时
每个单元格必须填写完整(不能为空)。从星期一到星期五的小时总数必须是40。宏可以自动启动,但也可以通过按钮启动。这对我很好。那么你想做什么呢?验证字段的宏?您希望宏检查是否输入了所有字段,如果小时数总和=40,则检查是否正确。第二步是为excel工作表中的每个人创建这些控件。同时,第一件事很好。你能上传一份电子表格的样本或者至少一张截图吗?我不知道每个人是否都有自己的电子表格,或者他们是否都列在对方的下面——如果没有看到这些信息,很难给你一个提示