2017-05-27 130 views
1

我不擅長excel,所以不知道如何做到這一點。excel vba用activex按鈕複製行

我有一個需求在哪裏。會有一個按鈕(添加按鈕),它將添加一個新的行。 此現有工作表包含具有數據的行,並且在A列上有一個ActiveX按鈕(驗證按鈕 - 每個按鈕都有一個代碼)。

所以,雖然我會點擊添加按鈕,它會在列A中添加一行Activex按鈕(驗證按鈕),並在後端添加一個反對它的代碼。

請問我可以怎麼做到這一點?的Excel工作表的

樣本圖像:https://ibb.co/cijovv

我寫的代碼只添加一行,但不能夠在後端複製上塔A該ActiveX按鈕和代碼。

添加一行代碼:

Private Sub CommandButton1_Click() 

Dim Lr As Integer 
Dim newLr As Integer 
Dim lim As String 

Lr = Range("A" & Rows.Count).End(xlUp).Row 'Searching last row in column A 
newLr = Lr + 1 
lim = "B" & newLr & ":" + "D" & newLr 
Application.CopyObjectsWithCells = True 
Rows(Lr).Copy 
Rows(newLr).Insert 
'Range(lim).ClearContents 
Application.CopyObjectsWithCells = False 

End Sub 
+0

確認每個行都是相同的嗎? –

+0

@羅梅爾格魯茲是的。驗證按鈕的代碼將自動更新每列的D,E列。相同的代碼將在那裏,但它只會更新尊重的行。 – Rajarshi

+0

你可以發佈你的代碼嗎? – Tehscript

回答

0

1 - 插入從窗體控件一個按鈕,電池A5

enter image description here

2,讓您的驗證碼在子(你可以命名爲任何你喜歡)

Sub MyValidateButtonCode() 
'here goes your validate button code 
MsgBox "It works!" 
End Sub 

3-將宏指定給單元格A5中的按鈕

enter image description here enter image description here

4單擊CommandButton1(添加行按鈕),然後運行上述代碼複製行。

+0

我試過了,但仍然無法複製按鈕。其餘的東西,它複製除了按鈕列A. – Rajarshi

+0

我已經使用下面來複制它,但有另一個問題。無法將按鈕的名稱屬性從「驗證」更改爲新行上的其他內容。 Application.ScreenUpdating =假 表(SHT).Shapes( 「驗證」)。複印 表(SHT).Activate 表(SHT).Range(RNG)。選擇 表(SHT).Paste 表(SHT ).Shapes(「validate」)。選擇 Selection.Characters.Text = btn Application.ScreenUpdating = True – Rajarshi

+0

@iamnew不要更改您的複製代碼。它工作正常。如果無法讓按鈕被複制,請嘗試以下操作:右鍵單擊按鈕並選擇剪切。然後點擊單元格A5,右鍵單擊它並選擇粘貼。然後再次嘗試您的代碼。 – Tehscript