我有一個excel電子表格,我在行上添加了一個按鈕,我想單擊它,然後複製該行,然後複製下。Excel VBA添加新行腳本不會根據按鈕的位置添加行
由於某種原因,它似乎沒有選擇我點擊按鈕的行,但是光標所在的位置意味着複製了錯誤的行。
有沒有什麼辦法可以改變下面的操作來使按鈕剛被按下的活動單元格?
Sub InsertRows()
Dim x As Integer
x = Application.InputBox("Number of Rows", "Number of Rows", Type:=1)
If x = False Then Exit Sub
ActiveCell.EntireRow.Copy
Range(ActiveCell, ActiveCell.Offset(x - 1, 0)).EntireRow.Insert Shift:=xlDown
Application.CutCopyMode = False
End Sub
提前感謝
人族
編輯
我與托馬斯的幫助下最終解決方案。
略有不同的是,這允許按鈕自己也被複制以及行。
Sub InsertRows()
Dim iRow As Integer
Dim x As Integer
Dim i As Integer
x = Application.InputBox("Number of Rows", "Number of Rows", Type:=1)
iRow = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
If x = False Then Exit Sub
For i = 0 To (x - 1)
'Range(ActiveCell, ActiveCell.Offset(x - 1, 0)).EntireRow.Insert Shift:=xlDown
Range("A" & iRow).EntireRow.Copy
Range("A" & iRow + 1 + i).EntireRow.Insert Shift:=xlDown
Next i
Application.CutCopyMode = False
End Sub
什麼類型的按鈕?窗體或ActiveX? –
嗨 - 它的一個表單按鈕。謝謝 –
單擊該按鈕不會更改ActiveCell。您可以通過查看Application.Caller –