Excel VBA質問箱 IV

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

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


9353 / 13644 ツリー ←次へ | 前へ→

【27577】オートフィルターで検索するコード はる 05/8/12(金) 12:08 質問[未読]
【27578】Re:オートフィルターで検索するコード m2m10 05/8/12(金) 12:25 回答[未読]
【27579】Re:オートフィルターで検索するコード はる 05/8/12(金) 12:54 質問[未読]
【27583】Re:オートフィルターで検索するコード はる 05/8/12(金) 14:40 発言[未読]
【27590】Re:オートフィルターで検索するコード りん 05/8/12(金) 15:51 回答[未読]
【27592】Re:オートフィルターで検索するコード m2m10 05/8/12(金) 15:57 回答[未読]
【27612】Re:オートフィルターで検索するコード はる 05/8/12(金) 20:48 お礼[未読]
【27723】エラーの原因。 Jaka 05/8/17(水) 9:44 発言[未読]
【27851】Re:エラーの原因。 はる 05/8/22(月) 12:43 お礼[未読]

【27577】オートフィルターで検索するコード
質問  はる  - 05/8/12(金) 12:08 -

引用なし
パスワード
   Textbox1に値(数値)を入力しCommandbuttonをクリックすると、
現在開いているアクティブシート内にあるデータベースのA列から
オートフィルターで検索し、その行にあるF列に本日の日付を入力し、
終わると、次の値を入力するを繰り返して行いたいのです。

初心者の私がやるととても長いコードになります。
こんなシンプルなマクロは簡単なコードで出来そうですよね。

どうか、コードを教えてください。
よろしくお願いします。

【27578】Re:オートフィルターで検索するコード
回答  m2m10  - 05/8/12(金) 12:25 -

引用なし
パスワード
   オートフィルター より

 自動マクロの記録で置換が良いと思います、

【27579】Re:オートフィルターで検索するコード
質問  はる  - 05/8/12(金) 12:54 -

引用なし
パスワード
   ▼m2m10 さん:
どうもありがとうございます。
それは、マクロの記録ボタンから記録していき、
そのコードを編集するということでしょうか?
どの部分をどう置換えればよいか、
出来れば教えていただきたいと思います。
どうぞよろしくお願いします。

>オートフィルター より
>
> 自動マクロの記録で置換が良いと思います、

【27583】Re:オートフィルターで検索するコード
発言  はる  - 05/8/12(金) 14:40 -

引用なし
パスワード
   Private Sub CommandButton1_Click()
  Dim i As String
  Dim h As Date
  
  i = TextBox1.Text
  h = TextBox2.Text
      Range("A2").Select
  Cells.Find(What:=i, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False).Activate
  ActiveCell.Offset(0, 8).Select
  ActiveCell.FormulaR1C1 = h
  End Sub

自己解決しました。
しかし、textbox1の値が見つからない時にデバックになってしまうのを
なんとかしたいのですが、
方法はありますか?
よろしくお願いします。

【27590】Re:オートフィルターで検索するコード
回答  りん E-MAIL  - 05/8/12(金) 15:51 -

引用なし
パスワード
   はる さん、こんにちわ。
検索はA列でよい、F列に今日の日付ということでこんなふうになりました。

Private Sub CommandButton1_Click()
  Dim i As String, r1 As Range, ra As String
  '現在表示しているシートが対象
  With ActiveWorkbook.ActiveSheet.Columns("A:A")
   i = TextBox1.Text
   If i <> "" Then
     'A列だけチェック(複数ヒットする可能性もあるから繰返す)
     '詳細はFindメソッド、FindNextメソッドの使用例
     Set r1 = .Find(What:=i, LookIn:=xlFormulas, _
      LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
      MatchCase:=False) '部分一致?
     If Not r1 Is Nothing Then
      ra = r1.Address
      Do
        r1.Offset(0, 5).Value = Date '5列右に今日の日付
        Set r1 = .FindNext(r1)
      Loop While Not r1 Is Nothing And r1.Address <> ra
     End If
   End If
  End With
End Sub

【27592】Re:オートフィルターで検索するコード
回答  m2m10  - 05/8/12(金) 15:57 -

引用なし
パスワード
   一番簡単のは

On Error Goto 終わり でラベル処理です・

【27612】Re:オートフィルターで検索するコード
お礼  はる  - 05/8/12(金) 20:48 -

引用なし
パスワード
   m2m10 さん・りんさん

どうもありがとうございました。
うまくいきました!

【27723】エラーの原因。
発言  Jaka  - 05/8/17(水) 9:44 -

引用なし
パスワード
   >Cells.Find(What:=i, After:=ActiveCell, LookIn:=xlFormulas, _
 LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
 MatchCase:=False).Activate
該当するセルがないのにActivate選択しようとするからです。

りんさんのように変数にセットして、変数の中身があるかないかで判断した方がいいと思います

【27851】Re:エラーの原因。
お礼  はる  - 05/8/22(月) 12:43 -

引用なし
パスワード
   お返事が遅くなり申し訳ありませんでした。
アドバイスどうもありがとうございました!

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