根据当前日期从另一个工作表中检索摘要总计

时间:2011-03-17 16:06:12

标签: excel vba

我正在尝试在Excel 2010中开发一个宏,它可以根据运行宏的日期从工作表2中提取数据,并根据工作表中给出的工程图状态在工作表1中提供总计不同的工程图状态2.例如,如果我在2011年3月18日运行宏,则工作表1(3/18/2011)行的总计ColB = 4,ColC = 0,ColD = 2,ColE = 1,ColF因此,每天运行宏,工作表1将根据当前日期和同一文件中工作表2的更新数据进行更新。任何人都可以给我一个如何启动此代码的提示吗?

表1的数据如下:

  A         B         C       D          E          F    
 Date  Preliminary  Review  Design  Construction  Final

“日期”列包含以下行:

3/18/2011
2011年3月20日
2011/3/21
2011/3/22

所以直到月底

表2的数据如下:

Col L具有图纸编号,而Col M具有图纸状态。以下是图纸2上的状态图纸

    L             M

**Drawing       Status**

DWGT2010001     Design

DWGT2010002     Preliminary

DWGT2010003     Final

DWGT2010004     Preliminary

DWGT2010005     Design

DWGT2010006     Construction

DWGT2010007     Final

DWGT2010008     Preliminary

DWGT2010009     Preliminary

DWGT2010010     Final

2 个答案:

答案 0 :(得分:1)

虽然您可以根据具体的布局对其进行更多修改,但这样可行。

Private Sub CommandButton1_Click()

Dim WorkingRow As Range
Dim StatusColumn As Integer
Dim i As Integer
Dim ColumnNames(1 To 5) As String

Set WorkingRow = Sheets("Sheet1").UsedRange.Find(Date, LookIn:=xlValues, _  
                   SearchOrder:=xlByRows).Rows(1)
StatusColumn = 13 ' Column M on Sheet 2
ColumnNames(1) = "Preliminary"
ColumnNames(2) = "Review"
ColumnNames(3) = "Design"
ColumnNames(4) = "Construction"
ColumnNames(5) = "Final"

For i = 1 To 5
  WorkingRow.Cells(1, i + 1).Value = _  
    Application.CountIf(Sheets("Sheet2").Columns(StatusColumn), ColumnNames(i))
Next i

End Sub

答案 1 :(得分:0)

我不确定我很清楚你想做什么......

首先,您可以尝试录制一个执行您想要的宏并调整代码: http://office.microsoft.com/en-us/excel-help/create-a-macro-HP005204711.aspx