実行時エラー91が発生します。オブジェクト変数またはブロック変数が設定されていません。他のブックのCells.Findメソッドから行番号を返します
私は別のブックで探している文字列の行番号を返す必要がありますと私は見ている名前から6列離れて配置します。名前は文字列に少しばらつきがあります。なぜなら、私は012lookupとは対照的にCells.Find
を使用することを好みました。
私は公共の範囲として無駄に探している範囲を設定しようとしました。両方のワークブックは開いていますが、Cells.Find
メソッドは、検索している範囲のブックがアクティブな場合にのみ機能します。
FYI、listrange
は、アクティブブックの名前の範囲です。 clientlist
は、検索中の他のワークブックの名前付き範囲です(開いているがアクティブではありません)。clientlist2
は、その名前付き範囲の宣言されたバージョンです。
は、ここでは、コードスニペットです:
Public clientlist2 As Range
Sub sortout()
Dim wkb As Workbook
Dim clientwks As Worksheet
Dim listrange As Range
Set wkb = Workbooks("workbook.xlsm")
Set clientwks = wkb.Sheets("Sheet1")
Set clientlist2 = clientwks.Range("clientlist")
Set listrange = Range("A6", Range("A6").End(xlDown))
For Each a In listrange
a.Offset(0, 6).value = clientlist2.Cells.Find(a).Row
Next a
End Sub
'設定しlistrange =レンジ( "A6"、レンジ( "A6")。終了(xlDown))を有効に'それから何シートをすべきですか?あなたは 'clientwks'と' clientlist2'について明確にしましたが、これは明確ではありません。 'Range()'の両方の使用の前にワークシートを置いてください。また、どの行がエラーを投げますか? – BruceWayne
リスト範囲は、別のプログラムから生成された一時ブックのsheet1で開きます。エラーは、この行のForループにスローされます:a.Offset(0、6).value = clientlist2.Cells.Find(a).Row 私はそれを今すぐ試してみます。 – AssemblyRequired
Bruceに感謝しますが、私はまだ同じ行でエラーを受けています。 – AssemblyRequired