何時間もの例を試しましたが、#NAME? という同じエラーが継続的に発生します。
VBA 関数内で VLOOKUP を使用し、結果をセルに入れる前に結果を処理する必要があります。まず、VBA VLOOKUP 部分を機能させるために問題が発生しています。
ここにテスト用の詳細があります スプレッドシートは...
ワークシート = Sheet1
4 行 x 2 列のデータ。セル D1:E4 ダンス : 23 フランス語 : 42 英語 : 2 音楽 : 33
セルA1には、ユーザーがコンテンツを挿入し、列Dの値になります。たとえば、フランス語です
セル B1 では、関数 =GetQty(A1,D1:E4,2) を呼び出しますが、常に #NAME? を取得します。
1) 関数を適切に呼び出すにはどうすればよいですか。私はこれを正しくやっていますか?
私の VBA 関数 "GetQty" では、セル A1 の値に対して VLOOKUP を実行し、テーブル (セル D1:E4) の一致するエントリから値を返します。たとえば、42 を返し、その値を列 B1 に配置し、 (=B1 のワークシート セルで数式を使用するだけでなく、VBA を介して列 C1 も)
これは、VLOOKUP を機能させるためだけに関数で試した多くの例の 1 つです。
Function GetQty(Celly As Range, CellyRange As Range, Colretval As Integer) As Integer
Dim result As String
Dim sheet As Worksheet
Set sheet = ActiveWorkbook.Sheets("Sheet1")
GetQty = Application.WorksheetFunction.VLookup(sheet.Range(CellyRange), sheet.Range(CellyTable), Colretval, False)
End Function
多くの例を試しましたが、常に #NAME? が表示されます。エラー