2017-07-13 17 views
0

ボタンのコードをExcelのボタンに書いて、クリックしたボタンの行番号を取得し、行番号を指定して対応する行を複製し、重複した行をクリックボタンの元の行の下に移動します。 例えば写真を参照してください: ​​ Click here for picture after button is pressed.Excel VBA:重複して行を挿入するボタンをクリックします。

私は(他の場所の間)などherehereとしてオンラインで見つける同じような問題の解決策に基づいてコードのいくつかの修正を試してみましたが、私は解決策を見つけることができませんワークシートクラスのButtonsプロパティを取得できません。このエラーについて私がオンラインで収集したことから、ワークシート関数に渡された引数が正しい型でないか、または単に意味をなさない場合によく発生します。私はコードを2回繰り返して投稿しました。同じことを行う必要があります

Private Sub CorrugatedR_Click() 
    Dim b As Object, RowNumber As Integer 
    ActiveSheet.Activate 
    Set b = ActiveSheet.Buttons("CorrugatedR") 
    With b.TopLeftCell 
     RowNumber = .Row 
     Rows(RowNumber + 1).Insert Shift:=xlDown 
     Rows(RowNumber).Copy Rows(RowNumber + 1) 
    End With 
End Sub 

他のバージョンでは、(私が遊んで多くのことを行ってきた):

Private Sub CorrugatedR_Click() 
Dim b As Object, RowNumber As Integer 
ActiveSheet.Activate 
ActiveSheet.Buttons("CorrugatedR").Select 
ActiveSheet.Buttons("CorrugatedR").Copy 
b.Paste 
    With b.TopLeftCell 
     RowNumber = .Row 
    End With 
Rows(RowNumber + 1).Insert Shift:=xlDown 
Rows(RowNumber).Copy Rows(RowNumber + 1) 
End Sub 

迅速な重要な注意点は、もともとの代わりに、ボタンの名前を呼ぶということです自分自身:ActiveSheet.Buttons("CorrugatedR")代わりにActiveSheet.Buttons(Application.Caller)を実装しましたが、何人かの人がこの提案をしましたが、別のエラーがありました。Application.Caller =エラー2023。研究をした後、私はこれらの問題が、それがタイピングや私が気づいていないことに関連するエーテルと同じ再発する問題に関係していると思います。私は実装して、同じエラーに解決策からの情報を使用しようとしたhere、まだ運が見つかりませんでした。私の直感は、問題が私が設定したコードの中にあるかもしれないということです。bSet b = ActiveSheet.Buttons("CorrugatedR")

私はまだVBAとExcelには新しいので、私の全体的なアプローチはそれ自体がミスをする可能性があります。しばらくの間、この1つに固執しています。あなたのコードがモジュールになっている場合、このサンプルコードは動作します

答えて

0

(あなたのボタンの名前でCommandButton1というを置き換える):

Private Sub example() 
    MsgBox ActiveSheet.CommandButton1.TopLeftCell.Row 
End Sub 

...またはあなたのコードが上にある場合シート

Private Sub CommandButton1_Click() 
    MsgBox Me.CommandButton1.TopLeftCell.Row 
End Sub 
+0

これは元々** ActiveX Controls **コマンドボタンを使用していました。代わりに**フォームコントロール**ボタンを実装したとき、私は_マクロに_を割り当てることができました。そこから、私の古いコードが働きました。正しい方向に私を向けるとありがとう、私はそれを非常に感謝します! –

関連する問題