Excel VBA質問箱 IV

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

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


14905 / 76734 ←次へ | 前へ→

【67316】Findでシートと行を範囲指定して検索する方法
質問  まめ  - 10/11/23(火) 22:54 -

引用なし
パスワード
   色々試してみて試行錯誤をし、サーチエンジンで検索もしたのですが、分からなくお力をお借りしたく質問させて頂いています。

一度は出来上がったコードだと思ったのですが、想定とは違った結果になってしまいました。
検証を行った結果、Findでの検索の範囲をシート全体としていた為想定とは違った列の値がかえってきているのが原因と分かりました。

検索の範囲を指定すればうまくいくだろうと思い
Set Obj = Worksheets("シフト").Cells.Find(day, LookAt:=xlWhole)
→Set Obj = Worksheets("シフト").Range("E3:AI3").Find(day, LookAt:=xlWhole)
の様に書き換えてみたりしたのですが上手く行かず・・・

上記のFindの検索の範囲指定を「〜シートの〜列目の変数dayを探す」と指定することは出来ますでしょうか。

以下が、書いているコードです。

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

  Set Obj = Worksheets("シフト").Cells.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

以上、お力添え頂けましたら幸甚存じます。
0 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 お礼

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