P1セルに「テスト」の名称を付ける。
P2セルにVLOOKUP計算式を入れる。最後尾までオートフィルでコピー。
といったコードです。
Sub テスト()
Range("P1").Select
ActiveCell.FormulaR1C1 = "テスト"
nLast = Cells(Rows.Count, 1).End(xlUp).Row
Range("P2:P" & nLast).Formula = "=VLOOKUP(K2,履歴!D:E,2,0)"
End Sub
もし「履歴」というシートがなかったら、「シートがありません」というメッセージウィンドウを」表示したいです。
https://oshiete.goo.ne.jp/qa/1043563.html
を参考に
Sub テスト()
On Error GoTo err_handle
Range("P1").Select
ActiveCell.FormulaR1C1 = "テスト"
nLast = Cells(Rows.Count, 1).End(xlUp).Row
Range("P2:P" & nLast).Formula = "=VLOOKUP(K2,履歴!D:E,2,0)"
err_handle:
If Err = 9 Then
MsgBox "シートAAAが存在しません。"
Exit Sub
End If
End Sub
と記述しましたが、エラーメッセージは表示しませんでした。
どのように追記したら良いでしょうか?
宜しくお願いします。
Sub テスト()
Dim ws As Worksheet
Dim nLast As Long
On Error Resume Next
Set ws = Worksheets("履歴")
On Error GoTo 0
If ws Is Nothing Then
MsgBox "履歴シートがありません", 16
Exit Sub
End If
Range("P1").FormulaR1C1 = "テスト"
nLast = Cells(Rows.Count, 1).End(xlUp).Row
Range("P2:P" & nLast).Formula = "=VLOOKUP(K2,履歴!D:E,2,0)"
End Sub
よく「履歴」のシート名が作れましたね
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1113237576
お礼
ありがとうございます。 表示できました。 「履歴」は予約語でしたか。 本当は「階層履歴確認」でしたが、省略して「履歴」と記載してました。