|
はじめまして。
ある範囲を指定して名前をつけたいのですがどうしていいかわからず
こちらに行き着きました。
どうかお知恵をおかし下さい。
あるシートのモジュールのコードです。
登録シートで入力したことを材料一覧シートに
登録していくようになってます。
そこで材料一覧シートにあらたに登録された2行(コード中の矢印のところ)を範囲指定して
登録シートにあったセルD2に入力されている言葉と同じ
名前をつけたいのですが、どのように書き足したら
良いでしょうか?
Private Sub Worksheet_Activate()
Dim n As Long
With Sheets("登録").ComboBox1
.Clear
For n = 1 To 25
If Sheets("材料一覧").Cells(1, n) <> "" Then
.AddItem Sheets("材料一覧").Cells(1, n)
End If
Next
End With
End Sub
Private Sub CommandButton1_Click()
Dim 目的の列 As Long, 最下行 As Long, 入力した行 As Long
入力した行 = Cells(Rows.Count, 3).End(xlUp).Row
If ComboBox1.Value = "" Then
MsgBox "献立分類を選んでください。"
Exit Sub
End If
If Range("D2") = "" Then
MsgBox "献立名を入力してください。"
Exit Sub
End If
If 入力した行 = 4 Then
MsgBox "材料を入力してください。"
Exit Sub
End If
With Sheets("材料一覧")
目的の列 = WorksheetFunction.Match(ComboBox1.Value, .Rows("1:1"), 0)
最下行 = .Cells(Rows.Count, 目的の列 + 2).End(xlUp).Row
.Cells(最下行 + 2, 目的の列).Value = Range("D2").Value
.Cells(最下行 + 2, 目的の列 + 1).Resize(入力した行 - 4, 2) = Range("C5:D" & 入力した行).Value ’ ←ここの値を範囲指定してD2に入力されているものと同じ名前をつけたいのです
End With
With Sheets("献立名")
目的の列 = WorksheetFunction.Match(ComboBox1.Value, .Rows("1:1"), 0)
最下行 = .Cells(Rows.Count, 目的の列).End(xlUp).Row
.Cells(最下行 + 1, 目的の列).Value = Range("D2").Value
End With
Range("D2,C5:D" & 入力した行).ClearContents
End Sub
|
|