ホーム>source

SelectionChange を呼び出すExcelスプレッドシートがありますアクティブセルを移動するたびに手順を実行します。

このプロシージャは、特定の数のアクションを実行し、結果をユーザーフォームに表示します。ユーザーは結果を検証したり、コマンドボタンを使用してキャンセルしたりできます。

ウィズウィズターゲットセルの行を取得します。

残したセルの行番号を取得するにはどうすればよいですか?

以下のコードの最初のブロックはシートコードにあり、2番目のブロックはユーザーフォームコードです。このテストユーザーフォームには、ラベルとボタンが1つだけ含まれています。

ボタンコードの最初の行は機能しますが、ターゲット行が表示されます。 2行目が機能することを望みましたが、OldRowが空であるため、行がクラッシュします。 OldRowをユーザーフォームに表示するにはどうすればよいですか?

<前>ウィズウィズ <前>ウィズウィズ Selection.row
あなたの答え
  • 解決した方法 # 1

    私はそのようにします

    <前>ウィズウィズ

    そして、私はこのコードを持っている形で

    <前>ウィズウィズ

    PSユーザーフォームのコードでユーザーフォーム自体を参照することはお勧めできません。資料の読み取りUserForm1.ShowおよびUserform Default InstanceとUserform Explicit Declaration

    Option Explicit Dim PrevActiveCell As Range Dim CurActiveCell As Range Dim frm As New UserForm1 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set PrevActiveCell = CurActiveCell Set CurActiveCell = ActiveCell If PrevActiveCell Is Nothing Then ' Either you forget to set CurActiveCell (when opening the workbook or ...) ' or you did reset the VBA project Else With frm .Caption = "Cur:" & CurActiveCell.Row & " Old: " & PrevActiveCell.Row .Show End With End If End Sub

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ javascript - 1つではなく複数のコンポーネントを取得します。それらはリストからレンダリングされます。 vuejs