Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
P列の文字がO列に含まれているかをチェツクしたい
投稿日時: 17/08/04 19:56:21
投稿者: Dellcasio

お世話になっております。
 
 
例 O列(りんご、パン、オレンジ)  P列(パン)
 
P列の文字がO列に含まれているかをチェツクしたいのですが、
FOR TO を使わないコードだと上手く行くのですが
 
FOR TO で回すとP列の文字がO列に含まれていない文字の時でも
含まれているように判断してしまいエラーになります。
 
どこに問題があるのでしょうか?
教えて頂けないでしょうか
よろしくお願い致します。
 
 
 
Sub O列の文字がP列に含まれているかをチェツク()
 
LASTROWAAA = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To LASTROWAAA
 
If InStr(Range("O" & j).Value, Range("P" & j).Value) > 0 Then
Range("Q" & j).Value = "OK"
End If
 
Next j
 
End Sub
 

回答
投稿日時: 17/08/04 20:32:08
投稿者: WinArrow
投稿者のウェブサイトに移動

>FOR TO を使わないコードだと上手く行くのですが
 どんなコードですか?

回答
投稿日時: 17/08/04 20:39:20
投稿者: WinArrow
投稿者のウェブサイトに移動

参考コード
ループなし、処理速度はループより早い
 
Sub 参考コード()
Dim MaxRow As Long
    MaxRow = Range("A" & Rows.Count).End(xlUp).Row
     
    Range("Q2").Resize(MaxRow - 1).Formula = "=IF(COUNTIF(O2,""*""&P2&""*"")>0,""OK"","""")"
End Sub

回答
投稿日時: 17/08/04 20:53:11
投稿者: simple

質問タイトル:        P列の文字がO列に含まれているかをチェツクしたい 
プロシージャー名: Sub O列の文字がP列に含まれているかをチェツク() 

どちらなんでしょうか?

回答
投稿日時: 17/08/04 21:07:24
投稿者: simple

> P列の文字がO列に含まれていない文字の時でも
> 含まれているように判断してしまいエラーになります。
その場合のP,Q列の具体的内容を調べて、示してください。
そして、エラーになるとは、どの行でなんというエラーになるのですか?
しっかり状況説明をしてください。
こちらからは、あなたのPC画面は見えていませんよ。(ま、力を抜かんといけないが)

投稿日時: 17/08/05 11:31:50
投稿者: Dellcasio

WinArrow さんの引用:
参考コード
ループなし、処理速度はループより早い
 
Sub 参考コード()
Dim MaxRow As Long
    MaxRow = Range("A" & Rows.Count).End(xlUp).Row
     
    Range("Q2").Resize(MaxRow - 1).Formula = "=IF(COUNTIF(O2,""*""&P2&""*"")>0,""OK"","""")"
End Sub

 
 
WinArrowさん
 
有難う御座いました。
凄すぎてコードが理解できませんが、
計算結果はちゃんと出る様になりました。
 
有難う御座いました。
 
 

投稿日時: 17/08/05 11:35:36
投稿者: Dellcasio

simple さんの引用:
> P列の文字がO列に含まれていない文字の時でも
> 含まれているように判断してしまいエラーになります。
その場合のP,Q列の具体的内容を調べて、示してください。
そして、エラーになるとは、どの行でなんというエラーになるのですか?
しっかり状況説明をしてください。
こちらからは、あなたのPC画面は見えていませんよ。(ま、力を抜かんといけないが)

 
 
simpleさん
ありがとうございます。
 
今回計算がうまく行かなかった原因が分かりました。
コードがO列とP列が逆になっていたようです。
 
いろいろと有難う御座いました。