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

时间:2015-11-27 01:55:26

标签: excel excel-vba vba

确定,

所以我试图计算一堆包含某些数据的单元格。我现在正在尝试将日期添加到键入另一个单元格的条件中。他的问题是单元格包含日期和时间,我只想过滤包含"包含"具体日期。

这是我的公式= 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

非常感谢。

2 个答案:

答案 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)  

让我们看看第一个问题。

由于两个原因,宏不会停止:

  1. 不是使用IsEmpty(Rng.Value2)验证单元格值,而是使用IsEmpty(WorkRng)

  2. 验证用户提供的整个范围
  3. 在使用Rng.Value = VBA.Int(Rng.Value)重新设置单元格的值之后进行验证,因此在验证时单元格永远不会为空。

  4. 这是您修改后的代码,我还做了其他一些小修改。

    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

    让我知道您可能对代码和所做的更改提出的任何问题。