好的,
因此,我试图计算一堆包含某些正常工作数据的单元格。我现在正在尝试将日期添加到该标准中,然后将该标准键入另一个单元格中。他的问题是单元格包含“日期和时间”,我只想过滤“包含”特定日期的单元格。
这是我的公式= COUNTIFS(Sheet3!G:G,“ example”,Sheet3!AC:AC,C50,Sheet3!AB:AB,A $ 48)AB列是日期/时间。我希望能够将日期改成A48,然后对包含该日期的所有单元格进行计数,但是由于该单元格中还有时间,因此无法正常工作。反正有排除日期吗?
我也尝试过运行一些代码。这解决了我的时间问题,但是当遇到空白单元格时代码不会停止。我该怎么做呢?或者,如果我可以解决上述问题,那么我根本不需要代码。这是代码。
Sub ConvertDates()
'Updateby20140529
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
Rng.Value = VBA.Int(Rng.Value)
If IsEmpty(WorkRng) Then Exit Sub
Next
WorkRng.NumberFormat = "mm/dd/yyyy"
End Sub
谢谢你
在我看来,OP有两个问题:
这解决了我的时间问题,但是当遇到空白单元格时代码不会停止。
1)我怎样才能做到这一点?
2)或者,如果我可以解决上述问题,我根本不需要代码。
第二个问题已经由@pnuts通过以下公式回答:
=COUNTIFS(Sheet3!G:G,"example",Sheet3!AC:AC,C50,Sheet3!AB:AB,">="&A$48,Sheet3!AB:AB,"<"&A$48+1)
让我们看第一个问题。
宏不会停止的原因有两个:
代替使用验证单元格值IsEmpty(Rng.Value2)
,它使用验证用户提供的整个范围IsEmpty(WorkRng)
验证发生在单元格的值被重述后,Rng.Value = VBA.Int(Rng.Value)
因此在验证时该单元永远不会为空。
这是您修改的代码,我也做了其他小的修改。
Sub ConvertDates_Original()
Const kTitleId = "Kutools for Excel"
Dim Rng As Range, WorkRng As Range
On Error Resume Next
Set WorkRng = Application.InputBox("Range", kTitleId, Selection.Address, Type:=8)
If WorkRng Is Nothing Then Exit Sub
For Each Rng In WorkRng
With Rng
If IsEmpty(.Value2) Then Exit Sub
.Value = Int(.Value2)
.NumberFormat = "mm/dd/yyyy"
End With: Next
End Sub
建议访问以下页面,以更深入地了解所做的更改:
让我知道您可能对代码和所做的更改有任何疑问。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句