我目前有一张工作表,每天都有多人填写。用户填写有4列:C,E,H和& J(所有数值,每月一行。)
用户填写C,E和& H每天都不管怎么样,但是很多天没有值放在J列中。如果用户没有输入任何东西,我需要将J中的值设置为0。当然,让用户输入0会更容易,但我在这里与一群复杂的人合作。
无论如何,我想使用一个在用户点击保存按钮时自动运行的宏(当然,在它实际保存之前),并让它执行以下操作:(我对php更熟悉,所以我是只需输入我熟悉的内容 - 我确定我的语法不正确)
Foreach Row
If "column A" != "" {
If "column J" != "" {
//Everything is good, continue on...
} else {
CurrentRow.ColumnJ.value == 0
}//Value has been set - continue loop
}
//column A is blank, this day hasn't come yet - quit looping here
End Foreach
如果有人能帮我解决这个问题,我会很感激。通过一些研究,这是我到目前为止所提出的,现在我被卡住了......
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim curCell As Range
'Labor Flow Sheet'.Select
For Each curCell in Range( ???? )
If curCell.Value = "" Then
???????
End If
Next curCell
End Sub
提前致谢!
答案 0 :(得分:1)
关于找到正确的范围,请参阅此link,对于If语句中的问号,您可能希望放置
curCell.Value = 0
答案 1 :(得分:0)
对于陈述中的问号
For Each curCell in Range( ???? )
解决方案1:
要查找您正在使用的完整范围,您需要使用每天填写的列。你提到每天填写C,E和H列。使用其中一列(我们在这里选择C代表),您可以使用.end方法找到范围。这从一个范围向上或向下,直到它找不到任何数据。所以,
Range("J1", Range("C1").End(xlDown)).Select
将从J1(或任何列是表格中的最后一列)中选择所有单元格到包含C列数据的最底部单元格,自动。
解决方案2:
手动放入范围。例如,要选择A1到J300:
Range("A1", "J300").Select