我正在尝试在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
答案 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