Excel VBA質問箱 IV

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

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


9514 / 76732 ←次へ | 前へ→

【72779】Re:複数条件のif構文がうまく機能しない
質問  トウジ  - 12/9/18(火) 22:35 -

引用なし
パスワード
   ▼kanabun さん:
返信ありがとうございます。
仰られた通りに修正して、かつ必ず条件が合うように全項目を0〜99という範囲で指定してみましたが、すべての行が非表示になるという結果でした。
また、イミディエイトウインドウを確認したところ、
[AD3] not(>=p1)
[AD9] not(>=p1)
[AD15] not(>=p1)
[AD21] not(>=p1)
[AD27] not(>=p1)
[AD33] not(>=p1)
[AD39] not(>=p1)
[AD45] not(>=p1)
[AD51] not(>=p1)
[AD57] not(>=p1)
[AD63] not(>=p1)
[AD69] not(>=p1)
[AD75] not(>=p1)
[AD81] not(>=p1)
[AD87] not(>=p1)
[AD93] not(>=p1)
[AD99] not(>=p1)
[AD105] not(>=p1)
[AD111] not(>=p1)
[AD117] not(>=p1)
[AD123] not(>=p1)
[AD129] not(>=p1)
[AD135] not(>=p1)

という結果となりました。
この参照しているセル(Sheets(1).Cells(i, "W")など)が純粋な値ではなく、計算式が入っていてあくまで数値が表示されている状態であるため、上手く機能しないのでしょうか?

再度アドバイスをいただければと思います。
お手数ですが、よろしくお願いいたします。


>>Do
>> 
>>x = i - 1
>>y = x + 5
>>    
>>If (h1 <= Sheets(1).Cells(i, "W") And Sheets(1).Cells(i, "W") <= h2) And
>>(j1 <= Sheets(1).Cells(i, "X") And Sheets(1).Cells(i, "X") <= j2) And
>>(k1 <= Sheets(1).Cells(i, "Y") And Sheets(1).Cells(i, "Y") <= k2) And
>>(l1 <= Sheets(1).Cells(i, "Z") And Sheets(1).Cells(i, "Z") <= l2) And
>>(m1 <= Sheets(1).Cells(i, "AA") And Sheets(1).Cells(i, "AA") <= m2) And
>>(n1 <= Sheets(1).Cells(i, "AB") And Sheets(1).Cells(i, "AB") <= n2) And
>>(o1 <= Sheets(1).Cells(i, "AC") And Sheets(1).Cells(i, "AC") <= o2) And
>>(p1 <= Sheets(1).Cells(i, "AD") And Sheets(1).Cells(i, "AD") <= p2) And
>>(q1 <= Sheets(1).Cells(i, "AE") And Sheets(1).Cells(i, "AE") <= q2) Then
>>
>>Else
>>Sheets(1).Rows(x & ":" & y).Hidden = True '表示しない 行(i-x)から行((i+5)-x)"
>>End If
>>i = i + 6
>>Loop Until Sheets(1).Cells(i, "D").Value = ""
>>
>>----------------------------------------------------------------
>>入力した条件に当てはまっていても、
>>Sheets(1).Rows(x & ":" & y).Hidden = True となり
>>行が非表示となってしまいます。なぜでしょうか?
>
>こちらでは(データを作り難く)検証がむつかしいので、
>うえの部分を以下のように修正して、
>イミディエイト・ウィンドウでどの列で条件外となっているか
>確かめてください。
>With Sheets(1)
> For i = 3 To .Cells(.Rows.Count, 4).End(xlUp).Row Step 6
>  x = i - 1
>  y = i + 4
>  .Rows(x & ":" & y).Hidden = True '表示しない 行(i-x)から行((i+5)-x)"
>  Select Case False
>   Case .Cells(i, "W") >= h1: Debug.Print "[W" & i & "] not(>=h1)"
>   Case .Cells(i, "W") <= h2: Debug.Print "[W" & i & "] not(<=h2)"
>   Case .Cells(i, "X") >= j1: Debug.Print "[X" & i & "] not(>=j1)"
>   Case .Cells(i, "X") <= j2: Debug.Print "[X" & i & "] not(>=j2)"
>   Case .Cells(i, "Y") >= k1: Debug.Print "[Y" & i & "] not(>=k1)"
>   Case .Cells(i, "Y") <= k2: Debug.Print "[Y" & i & "] not(>=k2)"
>   Case .Cells(i, "Z") >= l1: Debug.Print "[Z" & i & "] not(>=L1)"
>   Case .Cells(i, "Z") <= l2: Debug.Print "[Z" & i & "] not(>=L2)"
>   Case .Cells(i, "AA") >= m1: Debug.? "[AA" & i & "] not(>=m1)"
>   Case .Cells(i, "AA") <= m2: Debug.? "[AA" & i & "] not(>=m2)"
>   Case .Cells(i, "AB") >= n1: Debug.? "[AB" & i & "] not(>=n1)"
>   Case .Cells(i, "AB") <= n2: Debug.? "[AB" & i & "] not(>=n2)"
>   Case .Cells(i, "AC") >= o1: Debug.? "[AC" & i & "] not(>=o1)"
>   Case .Cells(i, "AC") <= o2: Debug.? "[AC" & i & "] not(>=o2)"
>   Case .Cells(i, "AD") >= p1: Debug.? "[AD" & i & "] not(>=p1)"
>   Case .Cells(i, "AD") <= p2: Debug.? "[AD" & i & "] not(>=p2)"
>   Case .Cells(i, "AE") >= q1: Debug.? "[AE" & i & "] not(>=q1)"
>   Case .Cells(i, "AE") <= q2: Debug.? "[AE" & i & "] not(>=q2)"
>   Case Else
>     .Rows(x & ":" & y).Hidden = False
>  End Select
> Next
>End With

1 hits

【72773】複数条件のif構文がうまく機能しない トウジ 12/9/18(火) 19:33 質問
【72774】Re:複数条件のif構文がうまく機能しない kanabun 12/9/18(火) 21:23 発言
【72779】Re:複数条件のif構文がうまく機能しない トウジ 12/9/18(火) 22:35 質問
【72781】Re:複数条件のif構文がうまく機能しない kanabun 12/9/18(火) 22:45 発言
【72778】Re:複数条件のif構文がうまく機能しない ドカ 12/9/18(火) 22:16 発言
【72780】Re:複数条件のif構文がうまく機能しない トウジ 12/9/18(火) 22:42 お礼

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