2016-08-31 16 views
0

私はワードドキュメントから文字列を読み込み、Excelシートから対応する値を返すためにvlookupを使用しようとしています。私は、 "subscript outまたはRange"というエラーをvlookup関数で受け取っているようです。Word/Excel Vba vlookup「下付き文字が範囲外です」エラー

これは私が探していたワークシートされています Sample Data

私が持っているコードは次のとおりです。

Sub Autofill() 
Dim oExcel As New Excel.Application 
Dim testdb As Excel.Workbook 
Dim testvar1 As Double 

Set testdb = oExcel.Workbooks.Open("k:\SIF\Vibration\Dbase.xlsm") 

testvar1 = oExcel.WorksheetFunction.VLookup("Roger", testdb.Sheets("Main").Range("A1:C4"), 2, False) 

MsgBox (testvar1) 

End Sub 

私は無駄に、同様Application.Vlookup機能を使用してみました。同じエラーが発生しました。

+0

これは暗闇の中のショットですが、Excel.ApplicationとしてoExcelを宣言しようとしましたか? は、シートの名前は 'Main'がDbase.xlsmファイルに存在しない場合は、おそらく、このエラーを取得したい セットoExcel =新しいまずExcel.Application – Alex

+1

、TESTDBを設定する前にこれを追加します。おそらく余分なスペースや何かがあるかもしれません。正確さをチェックしてください。私はあなたのコードをエミュレートし、それは大丈夫と思われる。問題になるかもしれないことの1つは、文字列を返すことを期待している場合は、testvar1を 'Double'ではなく' String'に変更することです。 –

+0

あなたの 'Vlookup'がエラーを返すので(あなたの' Vlookup'が見つからないので)、あなたのエラーが発生していると思われます。 'Vlookup'が失敗した場合にエラー処理を追加する必要があります。リンク:http://stackoverflow.com/questions/ 18063214/how-to-error-handle-1004-error-with-worksheetfunction-vlookup –

答えて

0

このスクリプトは私のために働いた。 [メイン]タブが存在することを確認します。これがエラーの重複の原因です。

VLookupに値がないと、「Unable to get Vlookup property ...」エラーが表示されます。

+0

それはまた私のために働いた –

+0

ブックの私のシート名とコードは同一であり、ブックは隠されていませんでした。まだoExcel.Workbooks.Open()で作業していなかったので、GetObject()に置き換えられました。 これはなぜ起こるのでしょうか? – Shiv

+0

正直、私はそれを最初に経験することができなければ(私が愛している)確信が持てません。私が持っているいくつかの長所は、リリースされていないCOMオブジェクトVBAがメモリから解放されていないか、環境にある可能性があるということです。おそらくブックにworkbook_open()プロセスがありますか? – Kevin

関連する問題