セルを選択するためのコードが必要ですが、そのセルは変更を選択します。ワークブックにセルがあり、それがどのセルであるかを識別します。セルA1には、選択する必要のあるセル番号が含まれています。
この例では、セルA1に単語「P25」が含まれているため、以下のコードで間接セルrefのA1を参照してP25を参照し、セルP25を選択します。
私はこれらの両方の行を別々に試しました:
Sub IndirectCellSelect()
Sheet.Range(INDIRECT(A1)).Select
Range(INDIRECT(A1)).Select
End Sub
間接的にWordに到達すると、SubまたはFunction is not definedというエラーが表示されます
投稿されたコードを少し変更すると機能します:
Range([indirect("a1")]).Select
しかし、代わりにこれらのいずれかを試すことをお勧めします:
Sheet.Range(Sheet.Range("A1").Value).Select
Range(Range("A1")).Select
最初はより明示的であり、量産コードで推奨されています。
Worksheets("list").Sort.SortFields.Add Key:=Range(INDIRECT("I16" & "3" & ":" & "I16" & "5002")) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Worksheets("list").Sort
.SetRange Range("B2:K5002")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
これは別の方法で行うこともできますが、VBAコード内でネイティブのExcelワークシート関数を使用する場合は、次のようにする必要があります(A1の参照方法も調整したことに注意してください)。
Application.WorksheetFunction.Indirect(Sheets(1).Range("A1"))
編集謝罪-私はこれをテストしていませんでした。このコンテキストでは間接関数は使用できないようです。代わりに、次のようなことを試してください。
Dim rng as Range
Set rng = sheets(1).Range("A1")
sheets(1).Range(rng.text).Select