0

すべてのボタンをクリアしましたが、VBA のすべてのボタンをクリアするためのすべてのボタンのコードをクリアするコードを元に戻すのに問題があります。

private sub commandbutton1_click
Sheets ("examplesheet").range ("a1:a3").value = ""

誤ってフォーム全体をクリアした場合に、この例の元に戻すボタンを作成するのを手伝ってくれる人はいますか?

4

1 に答える 1

1

元に戻すボタンをクリックしたときに何かを行う関数を作成できます。

Undo以下は、取り消しに必要な情報を格納するために呼び出されるシートを使用する例です。シートを隠せばすっきりします。

Sub Test()
  ClearCell Cells(1, 1)
End Sub

Sub ClearCell(R As Range)
  Sheets("Undo").Range("A1") = R.Worksheet.Name
  Sheets("Undo").Range("A2") = R.Address
  Sheets("Undo").Range("A3") = R.Text
  R.Clear
  Application.OnUndo "Undo button text", "MyUndo"
End Sub

Sub MyUndo()
  Sheets(Sheets("Undo").Range("A1").Text).Range(Sheets("Undo").Range("A2").Text) = Sheets("Undo").Range("A3").Text
End Sub

chuff のコメントによって提案されたドキュメントで説明されているように、アクションのキューを管理することでそれを改善できます

于 2013-07-21T18:41:39.253 に答える