空のセルに達するまでセルA7、A8、A9などから入力(13桁の数字)を取るマクロを作成し、これと別のブックでvlookupを実行します。別のブックのVLookup
しかし、私はちょうど#N/Aエラーを取得しています、そして、私はなぜうまくいかないのですか?
私の現在のコード:
Sub getData()
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlManual
Dim wb As Workbook, src As Workbook
Dim srcRange As Range
Dim InputString
Dim OutputString
Dim i As Long
Set wb = ActiveWorkbook
Set src = Workbooks.Open("D:\Files\test1.csv", True, True)
Set srcRange = src.Sheets(1).Range("A1:H1").End(xlDown)
i = 7
Do While wb.ActiveSheet.Cells(i, 1) <> ""
InputString = wb.Worksheets("Sheet 1").Cells(i, 1)
OutputString = Application.VLookup(InputString, srcRange, 3, False)
wb.Worksheets("Sheet 1").Cells(i, 2) = OutputString
i = i + 1
Loop
src.Close (False)
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlAutomatic
End Sub
私はそれは私が(「とInputString」)をアップしているよ参照は、「SRC」ファイルにカスタムフォーマット#0として定義されていることは注目に値すると思います。この問題があまりにも重要かどうかは分かりませんが、整数でなければなりませんか?
また、 "OutputString"は数値かテキストのどちらかになります。そのため私は意図的に未定義にしました。私はそれを 'Variant'、 'String'、 'Integer'として定義しようとしましたが、それは実際に何も変更されていません。
ありがとうございました。
あなたの 'VLookup'は、1列幅に設定されている範囲の3列目にアクセスしようとしています。おそらく '' A1:A8 ''を '' A1:C8 ''に変更しますか? – YowE3K
@ YowE3K - 申し訳ありませんが、私のテストスプレッドシートを使用しているときに私の部分にエラーがありました。私は修正するために編集しました。初期範囲を一番上の行に設定します。 –
(a)シート "シート1"で処理しようとしている範囲で、アクティブシートの列Aのセルが空白でないことを確認したとします。 (例えば、アクティブシートがセルA7に何も持っていなかった場合、ループは "シート1"のセルA7にあったものを処理しません。 "シート1"のセルB7に "#N/A" (b)コードを踏んで、 'InputString'の値がどのように設定されているのか確認しましたか? (c)csvファイルにあなたが探している値が含まれていることを確認しましたか? – YowE3K