确定,
所以我试图计算一堆包含某些数据的单元格。我现在正在尝试将日期添加到键入另一个单元格的条件中。他的问题是单元格包含日期和时间,我只想过滤包含"包含"具体日期。
这是我的公式= COUNTIFS(Sheet3!G:G,"示例",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
非常感谢。
答案 0 :(得分:0)
请尝试:
=COUNTIFS(Sheet3!G:G,"example",Sheet3!AC:AC,C50,Sheet3!AB:AB,">="&A$48,Sheet3!AB:AB,"<"&A$48+1)
这应该基于AB中的任何值大于或等于A48中的日期(没有时间)并且比那天晚不到一天 - 因此跨越任何时间。
我目前的情况相当于A48中的27/11/2015
和
">="42335,Sheet3!AB:AB,"<"42335+1
对于上述公式的最后一部分 - 因为Excel datetime serial中的时间是一天索引的小数部分。
答案 1 :(得分:0)
在我看来,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
建议访问这些页面以更深入地了解所做的更改:
Range Object (Excel),Variables & Constants
让我知道您可能对代码和所做的更改提出的任何问题。