Excel VBA質問箱 IV

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

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


14902 / 76734 ←次へ | 前へ→

【67319】Re:Findでシートと行を範囲指定して検索する方法
発言  UO3  - 10/11/24(水) 10:49 -

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

こんにちは

「〜シートの〜列目の変数dayを探す」と書いていらっしゃいますが
「〜シートの〜行目の指定領域内で変数dayを探す」ということですよね。

それと、日付と書いていらっしゃいますのでhirofumiさんも、日付型を前提とした
コメントを書いていらっしゃいますが、
Dim day As Integer
day = Range("F4")
と、ありますから、F4の値、および E3:AI3 内の値は 整数で 1〜31なんでしょうね?

うまくいかないというのが、どう、うまくいかなかったのですか?
少なくとも、こちらで、コピペして F4 および E3:AI3 に適当な数値をいれて動かすと
存在する場合はlngYLine、lngXLineに、正しい数値がはいりますし、存在しなかったら
存在しないということを把握できています。

むしろ、存在しなかった場合、【おかまいなし】に、後半の処理をしているのが気になります。
(それと、変数 i が規定されていませんね。Option Explicit の記述はないのですか?)

コードにインデントをつけますと、以下のようになっていますよ。

Option Explicit

Sub 抽出()
 Dim lngYLine As Long
 Dim intXLine As Integer
 Dim Obj As Object
 Dim day As Integer
 Dim ws As String
 Dim i As Long
 
 day = Range("F4")
 ws = ActiveSheet.Name

 Set Obj = Worksheets("シフト").Range("E3:AI3").Find(day, LookAt:=xlWhole)
 If Obj Is Nothing Then
   MsgBox "対象の日付が見つかりませんでした。"
 Else
   lngYLine = Worksheets("シフト").Cells.Find(day).Row
   intXLine = Worksheets("シフト").Cells.Find(day).Column
 End If

 For i = 6 To 38  '見つからなかった場合も、これ以降実行???

  ActiveWorkbook.Worksheets("シフト").Activate
  If Not (Cells(i, intXLine).Value = "" Or Cells(i, intXLine).Value = "休" Or Cells(i, intXLine).Value = "有 ") Then

   If Cells(i, 2).Value <> "" Then
    With Worksheets(ws).Range("B9")
     .Value = .Value & Cells(i, 2).Value & "、"
    End With
   Else     '<=== このコードは不要でしょ?
   End If
  End If
 Next i

 ActiveWorkbook.Worksheets(ws).Activate

End Sub
2 hits

【67316】Findでシートと行を範囲指定して検索する方法 まめ 10/11/23(火) 22:54 質問
【67317】Re:Findでシートと行を範囲指定して検索す... Hirofumi 10/11/24(水) 9:12 回答
【67318】Re:Findでシートと行を範囲指定して検索す... Hirofumi 10/11/24(水) 9:48 回答
【67349】Re:Findでシートと行を範囲指定して検索す... まめ 10/11/27(土) 1:38 お礼
【67319】Re:Findでシートと行を範囲指定して検索す... UO3 10/11/24(水) 10:49 発言
【67320】Re:Findでシートと行を範囲指定して検索す... UO3 10/11/24(水) 11:21 発言
【67352】Re:Findでシートと行を範囲指定して検索す... まめ 10/11/27(土) 2:36 お礼

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