Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9728 / 13646 ツリー ←次へ | 前へ→

【25759】VLookupについて・・・・ Saegon 05/6/13(月) 20:26 質問[未読]
【25773】Re:VLookupについて・・・・ Jaka 05/6/14(火) 9:34 回答[未読]
【25785】Re:VLookupについて・・・・ Saegon 05/6/14(火) 18:20 お礼[未読]

【25759】VLookupについて・・・・
質問  Saegon  - 05/6/13(月) 20:26 -

引用なし
パスワード
   下記ソースをVB6で作成しています。
行いたいことは、VB6のアプリから、Excelファイルのあるセルを検索して、
近似値のセルを求めたいのです。
下記の処理では、アプリケーションを起動して1回目の処理は問題なく
動いているのですが、アプリケーションを終了せずに続けて
2回目の処理を行うと、2回目の初回で、下記のエラーが出てしまいます。

〜ソース〜
For intF = 0 To 50
 strByou = Application.WorksheetFunction.VLookup _
      (CLng(strPoint(iFOR)), Range("B10000"), 1, True)
Next intF
〜エラー〜
WorksheetFunction クラスの VLookup プロパティを取得できません。(1004)

よろしくお願いいたします。

【25773】Re:VLookupについて・・・・
回答  Jaka  - 05/6/14(火) 9:34 -

引用なし
パスワード
   こんにちは。
VB6全然解りませんが...。

>For intF = 0 To 50
> strByou = Application.WorksheetFunction.VLookup _
>      (CLng(strPoint(iFOR)), Range("B10000"), 1, True)
>Next intF
>〜エラー〜
>WorksheetFunction クラスの VLookup プロパティを取得できません。(1004)

WorksheetFunctionを外したら...。
これがあると、結果がエラーの場合エラー値を返さず実効エラーになります。
On error resume next で、回避しても良いけど、こいうのでエラートラップ使うのは、私は抵抗がある。

たぶんこれでしょう。
strByou = Application.VLookup _
      (CLng(strPoint(iFOR)), Range("B10000"), 1, True)
If iserror(strByou) then
  ない
Else
 ・
 ・

【25785】Re:VLookupについて・・・・
お礼  Saegon  - 05/6/14(火) 18:20 -

引用なし
パスワード
   Jaka様、ご返事ありがとうございました。
ちょっと場違いな質問にもかかわらす、ご返事大変助かりました。
解決策としては、Range("B10000"),のところを、下記の様に書き換えました。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
Dim xlSheet As Excel.Worksheet
Dim xlRange As Excel.Range 

Set xlRange = xlSheet.Columns("B")
For intF = 0 To 50
  strByou = Application.WorksheetFunction.VLookup _
     (CLng(strPoint(iFOR)), xlRange , 1, True)
Next intF
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

VBからExcelファイルをいじる場合って難しいですね・・・

>こんにちは。
>VB6全然解りませんが...。
>
>>For intF = 0 To 50
>> strByou = Application.WorksheetFunction.VLookup _
>>      (CLng(strPoint(iFOR)), Range("B10000"), 1, True)
>>Next intF
>>〜エラー〜
>>WorksheetFunction クラスの VLookup プロパティを取得できません。(1004)
>
>WorksheetFunctionを外したら...。
>これがあると、結果がエラーの場合エラー値を返さず実効エラーになります。
>On error resume next で、回避しても良いけど、こいうのでエラートラップ使うのは、私は抵抗がある。
>
>たぶんこれでしょう。
>strByou = Application.VLookup _
>      (CLng(strPoint(iFOR)), Range("B10000"), 1, True)
>If iserror(strByou) then
>  ない
>Else
> ・
> ・

9728 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free