クリックされたセルを基準にしたセルの値に基づいてヘッダー行のテキストを検索しようとしています。私はこれを行うことを試みてきた方法は、次のされていますデータセクションのヘッダーに基づいてセルを検索し、そのセクションの最後の行を選択します。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim var1 As Variant
Dim var2 As Variant
Dim var3 As Variant
Dim FormName As String
FormName = "New Form"
Static NewFormCell As Range
Application.ScreenUpdating = False
If Not Intersect(Target, Range("G16:X80")) Is Nothing Then
If Target.Cells.Count = 1 Then
var1 = Cells(Target.Row, 2).Value
var2 = Cells(15, Target.Column).Value
If Not (IsEmpty(var1)) And Not (IsEmpty(var2)) And var2 <> "+" And Target.Interior.ColorIndex <> 2 And Target.Borders(xlEdgeLeft).LineStyle <> xlNone Then
If IsEmpty(Target) Then
Target.Value = "X"
Target.HorizontalAlignment = xlCenter
Target.VerticalAlignment = xlCenter
Target.Font.Bold = True
Dim Header As Range
Set Header = Range("A54:E160").Find(var2, LookIn:=xlValues)
Header.Offset(1, 1).End(xlDown).EntireRow.Select
Dim CopyCell As Range
'Header.End(xlDown).EntireRow.Insert
'Set CopyCell = Header.End(xlDown). [offset?]
'CopyCell.Value = var1
Else
Target.ClearContents
End If
Else
Exit Sub
End If
End If
End If
Application.ScreenUpdating = True
End Sub
問題はVBAは(「設定されていない変数またはWithブロック変数がオブジェクト」)ファイル名を指定して実行時エラー91を投げています。その後、そのコードセクションの最後の行が強調表示されます。前の行でその変数を設定しているので、なぜこのエラーを受け取っているのか、これについて正しい方法で行っているのか分かりません。
すべての入力をいただければ幸いです!
EDIT:より広い範囲で検索して上記の問題を解決しました。セルは、私がマージされた選択したかったが、私はまだ値が列A内に格納されたと仮定しかし、このコードはまだかなりに私はそれが欲しいものをやっていません:私は最後の行を選択したい
セクション(シート内のデータの最後の行ではなく、最後のB列のデータ)が表示されますが、今ではコードがシートの一番下まで飛んでいます。
これはすべてコードですか?関連するコードの残りの部分(つまり、宣言など)を投稿してください。これはworksheet_changeイベントですか?なぜあなたは ''セルを選択しようとしていますか? ( '.Select' /' .Activate'の使用を避けるのが最善です。)(https://stackoverflow.com/questions/10714251/)あなたの範囲には 'var2'はないでしょうか? – BruceWayne
他にも多数のIf文がありますが、この問題に関係のないIf文を除いた部分全体で上記のコードブロックを更新しました。この場合のvar2は "Mobile"を返し、ヘッダ行は次の式を持ちます(= CONCAT(H15、 "Form"))。ここで、H15は "Mobile"を含むセルです。したがって、私の.Find関数は式内で検索しています。 – Mknerr
どの行からエラーがスローされますか?あなたはいくつかの行をコメントアウトしました。 – BruceWayne