Excel VBA - 如果它们在日期之间匹配,则计算一列中的特定值

时间:2016-06-03 11:21:41

标签: excel vba excel-vba

如果有人能帮助我,我会非常感激。我对编程非常陌生,并且不知疲倦地在网上搜索我的答案,但无济于事。

基本上我有一个电子表格,其中包含公司的数据,我们从这些公司收到的物品以及我们收到它们的日期,例如

>set /A COUNTER=1
>echo checking internet connection
checking internet connection (o)

>echo.

Ping google.com -n 1 -w 1000
Ping request could not find host google.com. Please check the name and try again. (o - should return errorlevel 1, meaning the following should resolve to else)
>echo Internet access: Failed
Internet access: Failed (o)

>echo.

) was unexpected at this time. (o)

>     ) || (

以上是一个例子

我的工作表名为ItemsCompleted

我需要计算公司在任何给定的两个日期之间出现的次数。

我有一个带有TextBox(DateFrom)的UserForm,一个TextBox(DateTo),一个ComboBox(CampanyName),一个执行代码的按钮和一个显示计数的标签。

    A         B            C
Company1   Pen         30/05/2016
Company1   Pencil      01/06/2016
Company1   Eraser      01/06/2016
Company1   Marker      30/05/2016
Company2   Paper       02/06/2016
Company2   Card        02/06/2016
Company2   Docket      01/06/2016
Company2   Folder      01/06/2016
Company3   Red Ink     26/05/2016
Company3   Blue Ink    26/05/2016
Company3   Black Ink   28/05/2016
Company3   Printer     28/05/2016

这是我必须计算特定公司工作次数的代码,现在我只需要日期范围位。这就是我真正挣扎的。

我真诚地希望有人不仅能理解我所寻找的东西,还能帮助我。

提前谢谢你。 简

2 个答案:

答案 0 :(得分:0)

尝试使用以下代码,只要在组合框中使用公司名称填充UserForm对象,就可以使用它。

ping 192.168.9.2

答案 1 :(得分:0)

这是不优雅的,但是做了工作:

t = 0
cn = UserForm1.CompanyName.Value
df = UserForm1.DateFrom.Value
dt = UserForm1.DateTo.Value
lr = ActiveCell.SpecialCells(xlLastCell).Row
For c = 1 To lr
    If Range("A" & c) = cn And Format(Range("C" & c), "dd/mm/yyyy") >= Format(df, "dd/mm/yyyy") And Format(Range("C" & c), "dd/mm/yyyy") <= Format(dt, "dd/mm/yyyy") Then t = t + 1
Next
UserForm1.lblResultsBusCompany.Caption = Str(t)