Excel VBA – 如果它们在date之间匹配,则在一列中计算特定值

如果有人能够帮助我,我将不胜感激。 我对编程非常陌生,不知疲倦地在网上searchfind我的答案,没有用。

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

ABC 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 

以上是一个例子

我的工作表被称为ItemsCompleted

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

我有一个带有TextBox(DateFrom),一个TextBox(DateTo),一个ComboBox(CampanyName),一个执行代码的button和一个标签来显示计数的数字的用户窗体。

 Worksheets("ItemsCompleted").Select lblResultsBusCompany = Application.WorksheetFunction.CountIf(Range("D:D"), cmbCompanyResults.Value) 

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

我真诚希望有人不仅了解我在找什么,而且也能帮助我。

先谢谢你。 简

尝试遵循以下代码,一旦在combobox中填充了公司名称的UserForm对象,它就可以工作。

 Private Sub CommandButton1_Click() Dim i As Integer Dim sht As Worksheet Dim StartDate, FinishDate As Date Dim counter As Integer StartDate = CDate(DateFrom.Text) FinishDate = CDate(DateTo.Text) Set sht = Worksheets("ItemsCompleted") i = 1 counter = 0 While sht.Cells(i, 1) <> "" If sht.Cells(i, 1) = CompanyName.Value Then ' compare value of cell with ComboBox value If sht.Cells(i, 3) >= StartDate And sht.Cells(i, 3) <= FinishDate Then ' check if column C date is whithin range of selected dates counter = counter + 1 End If End If i = i + 1 Wend ResultLabel = counter End Sub 

这是不雅的,但是做这个工作:

 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)