セルが単語「kit」で始まる場合、範囲内の最初のセルの最初の7文字を名前付き範囲名に設定しようとしています。ここでVBAでセルの内容を名前付きの範囲名として設定する
は、私がこれまで持っているものです。
Sub DefineRanges()
Dim rngStart As Range
Set rngStart = Range("A1")
Dim LastRow As Integer
Dim RangeName As String
For Each cell In Range("A2:A7")
If LCase(Left(cell.Value, 3)) = "kit" Then
RangeName = LCase(Left(cell.Value, 7))
ActiveWorkbook.Names.Add _
Name:=RangeName, _
RefersToLocal:=Range(rngStart.Address & ":C" & cell.Row - 1)
Set rngStart = Range("A" & cell.Row)
End If
LastRow = cell.Row
Next
RangeName = LCase(Left(cell.Value, 7))
ActiveWorkbook.Names.Add _
Name:=RangeName, _
RefersToLocal:=Range(rngStart.Address & ":C" & LastRow)
End Sub
は基本的に私はそれは、私の全体の範囲に目を通すの単語「キット」で始まる任意の細胞を見つけ、それから行く名前付き範囲を作成したいですセルを「キット」で始まる次のセルまで移動し、そのセルの最初の7文字を範囲名に割り当てます。これまでは範囲を作成することができましたが、セルの内容を範囲名に渡そうとすると問題が発生します。何か案は?
何のエラーメッセージを取得し、その行にしますか? – QHarr
それは私に400のエラーメッセージを与えます。私の問題はRangeName = LCase(Left(cell.Value、7))のようです。私はそれが別のセルに出力を貼り付けていたので変数を設定することがわかっていますが、何らかの理由でその変数を範囲名に渡さないようにしました – user3047983
ループ外で 'cell'を参照しようとしています。エラー。 –