EXCEL VBAで教えてください。 ユーザーフォームに開始日、終了日を入れ、コマンドボタンを押し、sheet1の開始日から終了日に該当するセルをコピーし、sheet2に貼り付けたいのですが、うまくいきません。
今は、メッセージボックスで範囲指定し、コピー&ペーストしているのですが、ユーザーフォームで開始日終了日を指定して、コピーしSheet2へ貼り付けたいのです。
--------------------
Sub 届()
Dim myPath As String
Dim myFName As String
Dim ファイル名 As String
Workbooks("処理.xls").Activate
Range("B10:K80").Select
Selection.ClearContents
myPath = ActiveWorkbook.Path
ChDir myPath
myFName = Dir("m.txt")
Dim データ形式 As Variant
Dim 区切りタブ As Variant
ファイル名 = "m.txt"
データ形式 = xlDelimited
区切りタブ = True
Workbooks.OpenText Filename:="m.txt", DataType:=xlDelimited, Tab:=True
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="<>"
Columns("C:E").EntireColumn.AutoFit
Range("C2").Sort key1:=Columns("C"), Order1:=xlAscending, Header:= _
xlGuess
Worksheets.Add
Worksheets("m").Select
Dim moto As Range, saki As Range
On Error Resume Next
Set moto = Application.InputBox("どの範囲をコピーしますか?" & Chr(13) & "開始日、終了日を確認してください" & Chr(13) & "A列からE列まで選択してください", Type:=8)
If moto Is Nothing Then Exit Sub
If moto.Parent.Name <> "m" Then
MsgBox "m から選択してください"
Exit Sub
End If
Worksheets("Sheet1").Select
Set saki = Application.InputBox("どこに貼り付けますか?" & Chr(13) & "A4", Type:=8).Cells(1, 1)
If saki Is Nothing Then Exit Sub
If saki.Parent.Name <> "Sheet1" Then
MsgBox "Sheet1 から選択してください"
Exit Sub
End If
On Error GoTo 0
moto.Copy saki
ActiveWorkbook.SaveAs Filename:="届.xls", FileFormat:=xlWorkbookNormal
MsgBox "対象者をコピーしました"
End Sub
------------------
下記でやってみたのですがうまくいきません。
Private Sub CommandButton1_Click()
With Worksheets("sheet1")
開始日 = ">=" & TextBox1.Text
終了日 = "<=" & TextBox2.Text
ActiveSheet.Range("A1:N200").AutoFilter , Field:=3, _
Criteria1:=開始日, Operator:=xlAnd, _
Criteria2:=終了日
Unload UserForm1
End With
End Sub
No.1ベストアンサー
- 回答日時:
コードを拝見しましたが
無駄なコードと、意味のなさそうなコードが多く
やりたいことが良く分からなかった
取り合えず、userformは
これで問題無いと思いますが
ただ、textboxの入力に注意が必要かも
対象の日付の入ったセルをクリックして
数式バーに表示される形式で入力しないと
ヒットしないかもしれません
Private Sub CommandButton1_Click()
Dim 開始日, 終了日
With Worksheets("sheet1")
開始日 = ">=" & TextBox1.Text
終了日 = "<=" & TextBox2.Text
.Range("A1:N200").AutoFilter
.Range("A1:N200").AutoFilter Field:=3, _
Criteria1:=開始日, Operator:=xlAnd, _
Criteria2:=終了日
Unload UserForm1
End With
End Sub
あと、やりたいことを
もう少し詳しく文章でも説明が欲しいです
参考まで
回答ありがとうございます。ユーザーフォームで思ったようにできました。
ユーザーフォームに、開始日、終了日、コマンドボタンを作成し実行するのがまだうまくいきません。
開始日と終了日にyyyy/mm/ddと入れても、mm/ddと入れてもヒットしてしまうのですがうまくいきません。
もう少しやってみてまた質問させていただきます。
No.2
- 回答日時:
意欲的に新しい機能を試しておられて、すばらしいですね。
セルが整数値ではなく日付のときの AutoFilter の使い方の問題ですが
私もよく知らないのですが (^-^; 試した結果では
セルの表示と検索文字の表示をどちらも yyyy/mm/dd 形式
つまり 2010/5/11 ではなく、2010/05/10 とするとウマクいきました。
たぶんここで詰まったためにコピーするロジックまでは書いてありませんが
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
は良かったです。
また、AutoFilter した後は
WorkSheets("Sheet1").AutoFilterMode = False
などとしておいた方がスマートかとおもいます。
余談ですが、
Excel の InputBox ってオモシロイ機能があるのですね~ (^-^)
参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのアポストロフィを一...
-
エクセル:マクロ「Application...
-
エクセルの2ページ目の作り方
-
エクセルで勝手に「折り返して...
-
Excel 行の連続データを列に参...
-
エクセルで隣接していない複数...
-
EXCELシートをPowerPointにきれ...
-
EXCELのオートフィルの設定を変...
-
Excelに、ダブルクォーテーショ...
-
EXCEL数値が存在する列の項目名...
-
Excel)軽いデーターのはずなの...
-
メールソフト「サンダーバード...
-
EXELで複数のとびとびのセルを...
-
エクセル コピーしたデータを1...
-
エクセルで値だけコピーして背...
-
Excelのコピー・切り取り機能が...
-
エクセルのコピペでクリップボ...
-
エクセルで、選択範囲の数値全...
-
「選択範囲を解除してアクティ...
-
エクセル、ハイパーリンクのコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルの2ページ目の作り方
-
エクセルで勝手に「折り返して...
-
Excel 行の連続データを列に参...
-
EXCELシートをPowerPointにきれ...
-
EXCELのオートフィルの設定を変...
-
「選択範囲を解除してアクティ...
-
メールソフト「サンダーバード...
-
エクセルオートフィルで書式を...
-
Excelでコピーした行の挿入を繰...
-
Excelに、ダブルクォーテーショ...
-
エクセルでの行数・列数を指定...
-
エクセルで隣接していない複数...
-
Excel)軽いデーターのはずなの...
-
エクセルで値だけコピーして背...
-
EXELで複数のとびとびのセルを...
-
エクセル 別シートへのコピー...
-
エクセルで、選択範囲の数値全...
-
エクセル・数値が変化したらカ...
おすすめ情報