0

私のワークブックには、フォーム名のリストを含むワークシートがあり、各フォーム名は別々の行にあります。これらの行ごとに、そのフォームに関する情報を含むそのフォーム名を持つ個別のワークシートがあります。

この機能を含めたいと思います:

ユーザーが最初のワークシートから行を削除すると、対応するワークシートも削除されます。

私の最初のアプローチは、Worksheet_Change イベントを使用してコードをトリガーし、削除された行からフォーム名をキャプチャしてから、その名前のワークシートを削除しようとしましたが、行が既に削除されているため、そのデータをキャプチャできません。

この機能は可能ですか?ありがとう。

4

1 に答える 1

0

selection changeそれらがオンになっている行のシート名を取得するために使用し、変更イベントを使用してシートを削除します。

このようなもの:

Option Explicit
Dim SheetName As String

Private Sub Worksheet_Change(ByVal Target As Range)
If SheetName = "" Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
If Cells(Target.Row, 1) = "" Then Exit Sub 'Inserted a row?
If Cells(Target.Row, 1) <> SheetName Then
    Worksheets(SheetName).Delete
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count = 1 Then
    SheetName = Cells(Target.Row, 1)
Else
    SheetName = ""
End If
End Sub

Cells(あなたのシート名が最初の列にあると仮定しています-そうでない場合は参照の1を変更してください

于 2013-09-11T17:27:28.973 に答える