2013-06-12 21 views
0

以下是從我們導入到某些選項卡的數據中收集數據的宏。當宏運行時,它會對數據進行過濾,並用這些新數據生成一個新的Excel書籍。創造這個的人不再和我們在一起。宏工作正常,除了我想添加另一個列,比如自第一次驗證少於停放以來計算網絡天數的天數。我想添加另一個數據,這些數據從傳遞給我們的信息開始就有數天。即列第一個指示較少停放。計算網絡天數,某些日期從例外中省略 - Excel

Sub Runme() 
' 
' Macro1 Macro 
' Macro recorded 22/03/2013' 

' 
    Sheets("CCX data SORTED").Select 
    Cells.Select 
    Selection.Delete Shift:=xlUp 
    Sheets("CCX Data Raw").Select 
    Range("A:C,E:G").Select 
    Selection.Delete Shift:=xlToLeft 
    Rows("1:1").Select 
    Selection.AutoFilter 
    Range("H2").Select 
    Range("A1:X10000").Sort Key1:=Range("H1"), Order1:=xlDescending, Header:= _ 
     xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
     DataOption1:=xlSortNormal 
    Range("H55000").End(xlUp)(2, 1).Select 
    Range(Selection, Selection.End(xlToLeft)).Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Range(Selection, Selection.End(xlToLeft)).Select 
    Selection.ClearContents 
    Cells.Select 
    Selection.Copy 
    Sheets("CCX data SORTED").Select 
    Range("A1").Select 
    ActiveSheet.Paste 
    Sheets("CCX Data Raw").Select 
    Cells.Select 
    Selection.Delete Shift:=xlUp 
    Sheets("CCX data SORTED").Select 
    Columns("X:X").Select 
    Selection.Insert Shift:=xlToRight 
    Range("X2").Select 
    ActiveCell.FormulaR1C1 = _ 
     "=IF(VLOOKUP(RC[-23],'SCMT weekly data'!C[-17]:C[-11],7,FALSE)>0,(VLOOKUP(RC[-23],'SCMT weekly data'!C[-17]:C[-11],7,FALSE)),"""")" 
    Range("X2").Select 
    Selection.AutoFill Destination:=Range("X2:X5000") 
    Range("X1").Select 
    ActiveCell.FormulaR1C1 = "SCMT end Date" 
    Columns("X:X").Select 
    Selection.NumberFormat = "m/d/yyyy" 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Sheets("SCMT Weekly data").Select 
    Columns("Z:Z").Select 
    Selection.Insert Shift:=xlToRight 
    Range("Z1").Select 
    ActiveCell.FormulaR1C1 = "Days To Exclude 1" 
    Range("Z2").Select 
    ActiveCell.FormulaR1C1 = _ 
     "=IF(COUNTA(RC[-2],RC[-1])=2,NETWORKDAYS(RC[-2],RC[-1],'Bank hols'!RC[-25]:R[56]C[-25]),0)" 
    Selection.AutoFill Destination:=Range("Z2:Z5000"), Type:=xlFillDefault 
    Columns("AD:AD").Select 
    Selection.Insert Shift:=xlToRight 
    Range("AD1").Select 
    ActiveCell.FormulaR1C1 = "Days To Exclude 2" 
    Range("AD2").Select 
    ActiveCell.FormulaR1C1 = _ 
     "=IF(COUNTA(RC[-2],RC[-1])=2,NETWORKDAYS(RC[-2],RC[-1],'Bank hols'!RC[-29]:R[56]C[-29]),0)" 
    Selection.AutoFill Destination:=Range("AD2:AD5000") 
    Columns("Z:Z").Select 
    Selection.NumberFormat = "0" 
    Columns("AD:AD").Select 
    Selection.NumberFormat = "0" 
    Range("AH2").Select 
    ActiveCell.FormulaR1C1 = "=TODAY()" 
    Range("AF1").Select 
    ActiveCell.FormulaR1C1 = "Days since first auth" 
    Range("AF2").Select 
    ActiveCell.FormulaR1C1 = _ 
     "=IF(COUNTA(RC[-21],R2C34)=2,NETWORKDAYS(RC[-21],R2C34,'Bank hols'!RC[-31]:R[56]C[-31]),"""")" 
    Range("AG2").Select 
    ActiveCell.FormulaR1C1 = _ 
     "=IF(ISNUMBER(RC[-1]),SUM(RC[-1]-(RC[-3]+RC[-7])),"""")" 
    Range("AG1").Select 
    ActiveCell.FormulaR1C1 = "Days since 1st Auth less parked" 
    Columns("AH:AH").Select 
    Selection.Insert Shift:=xlToRight 
    Range("AH1").Select 
    ActiveCell.FormulaR1C1 = "Still Parked" 
    Range("AH2").Select 
    ActiveCell.FormulaR1C1 = _ 
     "=IF(AND(ISNUMBER(RC[-10]),ISBLANK(RC[-9])),""XX"",IF(AND(ISNUMBER(RC[-6]),ISBLANK(RC[-5])),""XX"",""""))" 
    Selection.AutoFill Destination:=Range("AH2:AH5000") 
    Range("AF2:AG2").Select 
    Selection.AutoFill Destination:=Range("AF2:AG5000") 
    Range("A55000").End(xlUp)(2, 1).Select 
    Selection.EntireRow.Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.ClearContents 
    Sheets("CCX data SORTED").Select 
    Range("Z1").Select 
    ActiveCell.FormulaR1C1 = "SCMT Queue" 
    Range("Z2").Select 
    ActiveCell.FormulaR1C1 = _ 
     "=VLOOKUP(RC[-25],'SCMT Daily Drop'!C[-16]:C[-14],3,FALSE)" 
    Selection.AutoFill Destination:=Range("Z2:Z5000") 
    Range("AA1").Select 
    ActiveCell.FormulaR1C1 = "Days Since First Approved" 
    Range("AA2").Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,'SCMT weekly data'!C7:C34,27,FALSE)" 
    Selection.AutoFill Destination:=Range("AA2:AA5000") 
    Range("AB1").Select 
    ActiveCell.FormulaR1C1 = "Still Parked" 
    Range("AB2").Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,'SCMT weekly data'!C7:C34,28,FALSE)" 
    Selection.AutoFill Destination:=Range("AB2:AB5000") 
    Cells.Select 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Range("A55000").End(xlUp)(2, 1).Select 
    Selection.EntireRow.Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.ClearContents 
    Sheets("SCMT weekly data").Select 
    Cells.Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
     Sheets(Array("SCMT weekly data", "SCMT Daily Drop", "CCX data SORTED")).Select 
    Sheets("CCX data SORTED").Activate 
    Sheets(Array("SCMT weekly data", "SCMT Daily Drop", "CCX data SORTED")).Copy 
    Windows("SCMT Parked.xls").Activate 
    Sheets("SCMT weekly data").Select 
    Cells.Select 
    Selection.Delete Shift:=xlUp 
    Sheets("SCMT Daily Drop").Select 
    Cells.Select 
    Selection.Delete Shift:=xlUp 
    Sheets("CCX data SORTED").Select 
    Cells.Select 
    Selection.Delete Shift:=xlUp 
    MsgBox ("Macro Complete") 


End Sub 

回答

0

你想要它?如果你想在z支柱,例如,嘗試:

Columns("Z:Z").Select 
Selection.Insert Shift:=xlToRight 
Range("Z1").Select 
ActiveCell.FormulaR1C1 = "New formula" 
Range("Z2").Select 
ActiveCell.FormulaR1C1 = "=AA2-AB2" 
Selection.AutoFill Destination:=Range("Z2:Z5000") 

我不明白你需要的公式,但是有可以使用的模板...如果你給我們的公式,我們可以把它是第二個最後一行?

+0

嗨,謝謝你的快速回復。我看着在AJ中創建例如列。並且與用於「自第一次停車後的天數」的公式相同 ActiveCell.FormulaR1C1 = _ 「= IF(COUNTA(RC [-21],R2C34)= 2,NETWORKDAYS(RC [-21],R2C34, 'Bank hols'!RC [-31]:R [56] C [-31]),「」「」) Range (「AG1」)。選擇 ActiveCell.FormulaR1C1 = 「自從第一次驗證以來停放的天數減少了」 再次感謝 – user2478441

+0

好吧,那麼簡單地用我的「AJ」替換我的「Z」,然後用= AA2-AB2代替上面的等效線,走! –

+0

再次感謝,這將計算正確和impliment網絡天 – user2478441