0
我的問題是以下。我正在錄製宏,因爲它的範圍是動態的。記錄Excel宏與countIf函數與拉斯特羅
的公式是=CountIF(A:A;A2)
並記錄它:
Range("M2").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(C[-12],RC[-12])"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M4333"), Type:=xlFillDefault
Range("M2:M4333").Select
由於行是動態的,我想結束每式到LASTROW。我在這裏尋找答案,並將此功能複製到宏的開頭。
Function GetLastRow(sht As Worksheet, col As String) As Integer
GetLastRow = sht.Range(col & CStr(sht.Rows.Count)).End(xlUp).row
現在我想
Range("M2").Select
Range(Selection, Selection.End(xlDown)).Select
Formula1 = "=COUNTIF(A:A" & GetLastRow(Sheets("Sheet1"), "A") & ",A2))"
我改變了它看起來就像是在工作表複製而不是像it's記錄的公式來此打電話錄製宏的原單。我希望對此有所幫助。如果lastrow函數與記錄的公式一起使用會更好,因爲我有許多其他公式會遇到同樣的問題。
它是[Range.Formula](https://msdn.microsoft.com/en-us/library/office/ff838835.aspx)或[Range.FormulaR1C1](HTTPS:/ /msdn.microsoft.com/en-us/library/bb213527.aspx),而不是'.Formula1'。 – Jeeped