在同一行中通过用户指定的列数自动填充公式

我logging了一个macros来自动填充一个公式,通过A5:D5 。 然而,macros不是每次都填写P列,而是应该询问用户他/她想要自动填充公式的列数。 例如,如果用户给出6列,则公式应该通过A5:F6填充,等等。

 Range("A5").Select ActiveCell.FormulaR1C1 = "=IF(R[-1]C<=R8C4,EDATE(RC[-1],1),"""")" Selection.AutoFill Destination:=Range("A5:D5"), Type:=xlFillDefault 

我试过这样做。

 Dim myValue As Integer myValue = InputBox("Enter number of months") Range("A5").Select ActiveCell.FormulaR1C1 = "=IF(R[-1]C<=R8C4,EDATE(RC[-1],1),"""")" Selection.AutoFill Destination:=Range("A5:" & myValue & "5"), Type:=xlFillDefault 

将您的最后一行代码replace为:

  Range("A5").Resize(1,myValue).FillRight 

事实上,你可以用这一行代替最后3行:

  Range("A5").Resize(1,myValue).FormulaR1C1 = "=IF(R[-1]C<=R8C4,EDATE(RC[-1],1),"""")"