如何从Excel中的单元格到另一个文本

好,

所以我正在计算一些包含某些数据的单元格,这些数据工作正常。 我现在试图添加date到input到另一个单元格的标准。 他的问题是单元格包含date和时间,我只想过滤“包含”一个特定date的单元格。

这是我的公式= COUNTIFS(Sheet3!G:G,“example”,Sheet3!AC:AC,C50,Sheet3!AB:AB,A $ 48)AB是date/时间。 我希望能够将一个datelogging到A48中,然后计算包含该date的所有单元格,但不能正常工作,因为单元格中也有Time。 还有排除date吗?

我也试着运行一些代码。 这解决了我的时间问题,但代码遇到空白单元格时不停止。 我怎么能做到这一点? 或者,如果我能解决上述问题,我不需要代码。 这是代码。

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) 

我们来看第一个问题。

macros不停止有两个原因:

  1. 而不是使用IsEmpty(Rng.Value2)validation单元格值,它使用IsEmpty(Rng.Value2)validation用户提供的整个范围,

  2. validation发生在单元格的值用Rng.Value = VBA.Int(Rng.Value)重新进行重新计算之后,因此单元在validation时将永远不会为空。

这是你修改后的代码,我也做了其他小修改。

 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 

build议访问这些页面以获得对所做更改的更深入的了解:

范围对象(Excel) , variables和常量

让我知道你可能有关于代码和修改的任何问题。

请尝试:

 =COUNTIFS(Sheet3!G:G,"example",Sheet3!AC:AC,C50,Sheet3!AB:AB,">="&A$48,Sheet3!AB:AB,"<"&A$48+1) 

这应该根据AB中的任何值大于或等于A48中的date(没有时间)并且比当天晚不到一天 – 因此跨越任何时间。

我现在在哪里,相当于A48中的27/11/2015

 ">="42335,Sheet3!AB:AB,"<"42335+1 

对于上面的公式的最后一部分 – 因为时间在Exceldate时间序列是一天的索引的小数部分。