Excel VBA質問箱 IV

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

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


2487 / 13645 ツリー ←次へ | 前へ→

【67715】If〜and のエラー Hirota 11/1/3(月) 13:47 質問[未読]
【67716】Re:If〜and のエラー かみちゃん 11/1/3(月) 13:52 発言[未読]
【67717】Re:If〜and のエラー Hirota 11/1/3(月) 15:03 質問[未読]
【67718】Re:If〜and のエラー かみちゃん 11/1/3(月) 16:57 発言[未読]
【67719】Re:If〜and のエラー UO3 11/1/3(月) 18:18 発言[未読]
【67720】Re:If〜and のエラー かみちゃん 11/1/3(月) 18:26 発言[未読]
【67721】Re:If〜and のエラー UO3 11/1/3(月) 20:54 発言[未読]
【67727】Re:If〜and のエラー Hirota 11/1/4(火) 22:20 お礼[未読]

【67715】If〜and のエラー
質問  Hirota E-MAIL  - 11/1/3(月) 13:47 -

引用なし
パスワード
   (ご質問)
If A and B and C then, 〜 end ifの条件文でデータ抽出試みていますが、エラーメッセージ"型が合いません"が表示されます。下記に構文を記載しておりますのでなにか間違いがありましたらご教示頂けますと大変助かります。


よろしくお願い致します。
====================================================================
Sub PCOのDESデータ抽出()

Dim i As Variant ' PCO海外資材発注書のデータ検索行の変数
Dim cnt As Variant ' PCO-ESTワークシート表の先頭行(3行目)

cnt = 4

For i = 4 To 100

If Sheets(5).Cells(i, 18).Value = Sheets(5).Cells(1, 13).Value _
And Sheets(5).Cells(i, 20).Value = Sheets(5).Cells(1, 14).Value _
And Sheets(5).Cells(i, 6).Value = "○" Then

Worksheets(7).Cells(cnt, 1).Value = Worksheets(5).Cells(i, 1).Value ' PO NO
Worksheets(7).Cells(cnt, 2).Value = Worksheets(5).Cells(i, 2).Value ' Goods
Worksheets(7).Cells(cnt, 3).Value = Worksheets(5).Cells(i, 6).Value ' Term
Worksheets(7).Cells(cnt, 4).Value = Worksheets(5).Cells(i, 8).Value ' KG
Worksheets(7).Cells(cnt, 5).Value = Worksheets(5).Cells(i, 15).Value 'ETD
Worksheets(7).Cells(cnt, 6).Value = Worksheets(5).Cells(i, 18).Value 'ETA
Worksheets(7).Cells(cnt, 7).Value = Worksheets(5).Cells(i, 20).Value 'NGT
Worksheets(7).Cells(cnt, 8).Value = Worksheets(5).Cells(i,26).Value 'Unit Price

cnt = cnt + 1 '「明細書」ワークシート表のコピー先の行を一つ進める

End If
Next i

MsgBox ("データ抽出完了")

END SUB
========================================================================

【67716】Re:If〜and のエラー
発言  かみちゃん E-MAIL  - 11/1/3(月) 13:52 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>If A and B and C then, 〜 end ifの条件文でデータ抽出試みていますが、エラーメッセージ"型が合いません"が表示されます。

どこのコードでエラーが出ているのでしょうか?

左から5番目のシートの
4行目〜100行目の6列め、13列め、14列め、18列め、20列めのいずれかのセルの値が
エラーとなっているセルはありませんか?

【67717】Re:If〜and のエラー
質問  Hirota E-MAIL  - 11/1/3(月) 15:03 -

引用なし
パスワード
   かみちゃん様

早速のご返答ありがとうございます。
説明不足で申し訳ございません....

エラーが出るのは、下記構文になります。
-----------------------------------------------------------------
If Sheets(5).Cells(i, 18).Value = Sheets(5).Cells(1, 13).Value _
And Sheets(5).Cells(i, 20).Value = Sheets(5).Cells(1, 14).Value _
And Sheets(5).Cells(i, 6).Value = "○" Then
------------------------------------------------------------------
上記一行づつテストしましたところ、(Sheets(5).Cells(i, 6).Value = "○")
は、式どおりにデータが抽出されましたが、下記2式が、
Sheets(5).Cells(i, 18).Value = Sheets(5).Cells(1, 13).Value
Sheets(5).Cells(i, 20).Value = Sheets(5).Cells(1, 14).Value
自分が思うとおりにデータが抽出されません.... (いちぶんずつ試しましたが
データが全く抽出されませんでした。)

また4行目〜100行目の6,13,14,18,20列にどのセルにもエラーとなる
ものはありませんでした。

同様のVBAは、過去にも数回作成したことがあるのですが、なぜか今回思う
ように行きません...

もしご迷惑でないようでしたら、私のG-mailよりかみちゃん様にexcelファイルを
お送りさせて頂き、拝見頂けましたら大変助かります。

私のG-mail addressは、ht7750@gmail.comになります。こちらにかみちゃん様
より空メールお送り頂けましたら、そのメールに添付しお送り致します。

よろしくお願い致します。
                 Hirota


▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>If A and B and C then, 〜 end ifの条件文でデータ抽出試みていますが、エラーメッセージ"型が合いません"が表示されます。
>
>どこのコードでエラーが出ているのでしょうか?
>
>左から5番目のシートの
>4行目〜100行目の6列め、13列め、14列め、18列め、20列めのいずれかのセルの値が
>エラーとなっているセルはありませんか?

【67718】Re:If〜and のエラー
発言  かみちゃん E-MAIL  - 11/1/3(月) 16:57 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> excelファイルをお送りさせて頂き、拝見頂けましたら大変助かります。

原因は、ファイルを見たほうが早くわかりそうなので、一応、メールは送ってみました。

【67719】Re:If〜and のエラー
発言  UO3  - 11/1/3(月) 18:18 -

引用なし
パスワード
   ▼Hirota さん:

はずしていたらスルーしてください。

Sheets(5) これは、グラフなどのシートも含めて5番目のシートということです。
仮に5番目がグラフシートであればセルという概念はありませんのでエラーになります。

グラフシートも含まれる場合にワークシートのみを対象にするなら、
If文も Worksheets(5)と記述する方が安全です。

【67720】Re:If〜and のエラー
発言  かみちゃん E-MAIL  - 11/1/3(月) 18:26 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 仮に5番目がグラフシートであればセルという概念はありませんのでエラーになります。

私もそれは考えましたが、それであれば、

>> 上記一行づつテストしましたところ、(Sheets(5).Cells(i, 6).Value = "○")
は、式どおりにデータが抽出されました

は、なぜエラーにならないのでしょうか?

> If文も Worksheets(5)と記述する方が安全です。

たしかに、それは解決策のひとつですね。

【67721】Re:If〜and のエラー
発言  UO3  - 11/1/3(月) 20:54 -

引用なし
パスワード
   ▼かみちゃん さん:
> 上記一行づつテストしましたところ、(Sheets(5).Cells(i, 6).Value = "○")
>は、式どおりにデータが抽出されました
>
>は、なぜエラーにならないのでしょうか?
>

確かにそうですね。かつ、グラフシート等でしたらエラーメッセージが
別のものになるはずですよね。

かみちゃんさんに送られるシートの現物をチェックいただくのが早いですね。

【67727】Re:If〜and のエラー
お礼  Hirota E-MAIL  - 11/1/4(火) 22:20 -

引用なし
パスワード
   U03さん

アドバイスありがとうございました。
VBAは、素人ですので、大変参考になります。

*エラーの件ですが、試行錯誤しました結果、
 On Error Resume Next
 で対処することができました。

hirota


▼UO3 さん:
>▼Hirota さん:
>
>はずしていたらスルーしてください。
>
>Sheets(5) これは、グラフなどのシートも含めて5番目のシートということです。
>仮に5番目がグラフシートであればセルという概念はありませんのでエラーになります。
>
>グラフシートも含まれる場合にワークシートのみを対象にするなら、
>If文も Worksheets(5)と記述する方が安全です。

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