ボタンのコードをExcelのボタンに書いて、クリックしたボタンの行番号を取得し、行番号を指定して対応する行を複製し、重複した行をクリックボタンの元の行の下に移動します。 例えば写真を参照してください: Click here for picture after button is pressed.Excel VBA:重複して行を挿入するボタンをクリックします。
私は(他の場所の間)などhereとhereとしてオンラインで見つける同じような問題の解決策に基づいてコードのいくつかの修正を試してみましたが、私は解決策を見つけることができませんワークシートクラスの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、まだ運が見つかりませんでした。私の直感は、問題が私が設定したコードの中にあるかもしれないということです。b
:Set b = ActiveSheet.Buttons("CorrugatedR")
私はまだVBAとExcelには新しいので、私の全体的なアプローチはそれ自体がミスをする可能性があります。しばらくの間、この1つに固執しています。あなたのコードがモジュールになっている場合、このサンプルコードは動作します
これは元々** ActiveX Controls **コマンドボタンを使用していました。代わりに**フォームコントロール**ボタンを実装したとき、私は_マクロに_を割り当てることができました。そこから、私の古いコードが働きました。正しい方向に私を向けるとありがとう、私はそれを非常に感謝します! –