Excel VBA質問箱 IV

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

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


37799 / 76732 ←次へ | 前へ→

【44094】オートフィルタで抽出したデータをコピー
質問  卓司  - 06/11/3(金) 20:03 -

引用なし
パスワード
   皆様初めて投稿いたします。よろしくお願いします。
以下のコードを書きました。(作りかけ)

Option Explicit
Dim R As Range
----------------------------------------------------------------------
Private Sub Worksheet_Activate()

 With Worksheets("Sheet1")
 
 .Range("A1").AutoFilter Field:=1, Criteria1:=1
 
  If .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible) _
  .Rows.Count = 1 Then
  test3
  Else
  test2
  End If
 
 End With

End Sub
---------------------------------------------------------------------
Private Sub test2()

Set R = Worksheets("Sheet1").Range("A1").CurrentRegion
  With R
     .Resize(.Rows.Count - 1).Offset(1).Copy
     Worksheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteValues

  End With
  
R.AutoFilter
  
End Sub
----------------------------------------------------------------------
Private Sub test3()

 With Worksheets("Sheet1")
 
 MsgBox "対象データがありません。"
 
 .Activate
 Selection.AutoFilter
 
 End With
 
End Sub

Sheet1の列Aは見出し項目(A1)以外ブランクにしておいて、使用者がコピー
したいデータの列Aに「1」を入力してもらい、Sheet2に切り替えるとデータが
張り付いているという動作をしたいのですが、
1.「1」がひとつも入力されていないと”対象データがありません”が表示
 され、かつすべてのデータがSheet2に張り付いてしまう。
2.「1」がいくつか入力されていても、セル「A2」がブランクだったり、「1」
 以外の数値がはいっていると、”対象データありません”になってしまう。

うまくいくのはセル「A2」に「1」が入っているときだけです。

IF文が問題だと思うのですが・・いろいろ調べてもわかりません。
どうかどうかよきアドバイスをお願いします。
0 hits

【44094】オートフィルタで抽出したデータをコピー 卓司 06/11/3(金) 20:03 質問
【44095】Re:オートフィルタで抽出したデータをコピー ponpon 06/11/3(金) 20:48 発言
【44097】Re:オートフィルタで抽出したデータをコピー 卓司 06/11/3(金) 22:11 お礼
【44098】Re:オートフィルタで抽出したデータをコピー ponpon 06/11/3(金) 22:39 発言
【44099】Re:オートフィルタで抽出したデータをコピー 卓司 06/11/3(金) 23:03 お礼

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