自动填充公式,但要停下来
Autofill formula, but stop short
我有一个宏,可以在电子表格中插入多行,行数由用户在对话框中输入规定。我想要实现的是根据用户插入的行数将公式自动填充到相应的列中。
我目前的密码是:
Dim iInputRows As Integer
Dim iCount
iInputRows = CInt(InputBox("How many data entry rows required?")) 'message box for user input (interger)
If iInputRows > 1 Then
For iCount = 1 To iInputRows - 1
Rows(iCount + 13 & ":" & iCount + 13).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'insert no. of rows from from first row (row 13) to user input minus 1 (this ensures that the exact no. of rows are inserted from row 13 down)
Range("D" & iCount + 13).Value = iCount + 1 'column D is used for sequential numbering purposes
Next iCount
End If
自动填充的公式是 = X13:AR13
。
我对自动填充公式比较满意,但我在这个应用程序中遇到困难,无法根据规定的行数停止自动填充。
我不确定你对其余数据做了什么,但这应该有效:
Sub aaa()
Dim iInputRows As Integer
Dim iCount
iInputRows = CInt(InputBox("How many data entry rows required?"))
If iInputRows > 1 Then
For iCount = 1 To iInputRows - 1
Rows(iCount + 13 & ":" & iCount + 13).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D" & iCount + 13).Value = iCount + 1
Next iCount
Range("X13:AR13").AutoFill Destination:=Range("AX13:AR" & iInputRows + 13)
End If
End Sub
您应该能够一次插入所有行,然后在 D 列中使用数据系列并填写 X:AR 列中的公式。
Dim iInputRows As Long
iInputRows = CInt(InputBox("How many data entry rows required?"))
If iInputRows > 1 Then
Rows(14).Resize(iInputRows, Columns.Count).EntireRow.Insert _
Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D13").Resize(iInputRows + 1, 1).DataSeries Rowcol:=xlColumns, _
Type:=xlLinear, Step:=1
Range("X13:AR13").Resize(iInputRows + 1, 21).FillDown
End If
我有一个宏,可以在电子表格中插入多行,行数由用户在对话框中输入规定。我想要实现的是根据用户插入的行数将公式自动填充到相应的列中。
我目前的密码是:
Dim iInputRows As Integer
Dim iCount
iInputRows = CInt(InputBox("How many data entry rows required?")) 'message box for user input (interger)
If iInputRows > 1 Then
For iCount = 1 To iInputRows - 1
Rows(iCount + 13 & ":" & iCount + 13).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'insert no. of rows from from first row (row 13) to user input minus 1 (this ensures that the exact no. of rows are inserted from row 13 down)
Range("D" & iCount + 13).Value = iCount + 1 'column D is used for sequential numbering purposes
Next iCount
End If
自动填充的公式是 = X13:AR13
。
我对自动填充公式比较满意,但我在这个应用程序中遇到困难,无法根据规定的行数停止自动填充。
我不确定你对其余数据做了什么,但这应该有效:
Sub aaa()
Dim iInputRows As Integer
Dim iCount
iInputRows = CInt(InputBox("How many data entry rows required?"))
If iInputRows > 1 Then
For iCount = 1 To iInputRows - 1
Rows(iCount + 13 & ":" & iCount + 13).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D" & iCount + 13).Value = iCount + 1
Next iCount
Range("X13:AR13").AutoFill Destination:=Range("AX13:AR" & iInputRows + 13)
End If
End Sub
您应该能够一次插入所有行,然后在 D 列中使用数据系列并填写 X:AR 列中的公式。
Dim iInputRows As Long
iInputRows = CInt(InputBox("How many data entry rows required?"))
If iInputRows > 1 Then
Rows(14).Resize(iInputRows, Columns.Count).EntireRow.Insert _
Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D13").Resize(iInputRows + 1, 1).DataSeries Rowcol:=xlColumns, _
Type:=xlLinear, Step:=1
Range("X13:AR13").Resize(iInputRows + 1, 21).FillDown
End If