2013-12-09 92 views
0

我想請求一個簡單的宏的幫助。它可以幫助我的隊友比較數據並應用countif功能並提供正確的數據。但是,宏自動填充設置爲D108。我想稍微改變它以自動填充它直到上一個填充行。任何人都可以幫助我修改它的工作方式嗎?自動填充直到最後一行,countif,就緒宏調整

Sub Countif_function() 

Sheets("Account Campaign Member").Select 
Range("D1").Select 
ActiveCell.FormulaR1C1 = "How Many Contacts do we have?" 
Range("D2").Select 
ActiveCell.FormulaR1C1 = "=COUNTIF('Campaign Member'!C[-2],RC[-1])" 
Selection.AutoFill Destination:=Range("D2:D108") 
Range("D2:D108").Select 
Columns("D:D").Select 
Selection.Copy 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Columns("B:D").Select 
Application.CutCopyMode = False 
Selection.Copy 
Sheets("Comparison").Select 
Range("A1").Select 
ActiveSheet.Paste 
Columns("A:B").EntireColumn.AutoFit 
Columns("A:B").EntireColumn.AutoFit 
Columns("B:B").Select 
End Sub 

回答

0

試試這個更新

Sub Countif_function() 

Sheets("Account Campaign Member").Range("D1")= "How Many Contacts do we have?" 
with Sheets("Account Campaign Member").Range("D2:D" & .cells(rows.count,3).end(xlup).row) 
    .FormulaR1C1 = "=COUNTIF('Campaign Member'!C[-2],RC[-1])" 
    .value=.value 
end With 

Sheets("Account Campaign Member").Columns("B:D").copy Sheets("Comparison").Range("A1") 
Sheets("Comparison").Columns("A:B").EntireColumn.AutoFit 
Sheets("Comparison").Columns("B:B").Select 

End Sub 
+0

您好@nutsch,這個代碼帶給我的錯誤在它的4號線。問題出在(.rows.count,3)。當我刪除點時,它會運行,但像我一樣 - 不是結束。有任何想法嗎? – mgunia

+0

刪除.rows中的前導期 – nutsch

0

使用此代碼
LastRow = Range("A2").End(xlDown).Row
Range("D2").AutoFill Destination:=Range(Range("D2"), Range("D" & LastRow))

代替

Selection.AutoFill Destination:=Range("D2:D108") 
+0

Hi @alpha bravo,更改此代碼會帶來一個問題。它爲任何可能的單元格做了countif(類似於100k,這實際上減慢了它的速度。我應該如何修改它以僅填充到填充的單元格中? – mgunia

+0

@mgunia,我更改了上面的代碼,希望我明白了意思的「填充單元格」正如列「A」單元格已經填充! –

相關問題