[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『指定した日付のファイルを開いて処理を繰り返すには』(ひろ)
日付を持っているファイルsを日付指定して開いて、列をコピーして別ファイルに貼り付けたあと、またそのファイルsを開きたいのですがうまくいきません。Workbook.s.Activateで実行時エラー'424' オブジェクトが必要です になってしまいます。
ファイルsを置き換えないといけないのでしょうか。
ご教示いただければ幸いです。
Sub Macro1()
Dim s As String
Dim dt As Date
s = InputBox("年月日(例2017/4/25)")
If s = "" Then Exit Sub
If Not IsDate(s) Then
MsgBox "日付が正しくありません"
Exit Sub
End If
dt = DateValue(s)
s = "C:\パパ" & "\Book1_" & Format(dt, "yyyymmdd") & ".xlsx"
If Dir(s) = "" Then
MsgBox "ファイルみつからず"
Exit Sub
End If
MsgBox s & vbCrLf & "を開きます"
Workbooks.Open s
Columns("B:B").Select Selection.Copy Windows("Book2").Activate Sheets("Sheet2").Select Range("B4").Select workbook.s.Activate Range("I15").Select Selection.Copy Windows("Book2").Activate Sheets("Sheet2").Select Range("D5").Select
End With
End Sub
< 使用 Excel:Excel2013、使用 OS:Windows10 >
Workbooks(Dir(s)).Activate
ではどうなりますか?
(カリーニン) 2017/05/20(土) 18:11
Sub Macro1()
Dim s As String Dim dt As Date
s = InputBox("年月日(例2017/4/25)")
If s = "" Or s = False Then Exit Sub If Not IsDate(s) Then MsgBox "日付が正しくありません" Exit Sub End If
dt = DateValue(s) s = "C:\パパ" & "\Book1_" & Format(dt, "yyyymmdd") & ".xlsx" If Dir(s) = "" Then MsgBox "ファイルみつからず" Exit Sub End If MsgBox s & vbCrLf & "を開きます" Workbooks.Open s Columns("B:B").Select Selection.Copy Windows("Book2").Activate Sheets("Sheet2").Select Range("B4").Select Workbooks(Dir(s)).Activate Range("I15").Select Selection.Copy Windows("Book2").Activate Sheets("Sheet2").Select Range("D5").Select
'End With 'これは不要
End Sub
(カリーニン) 2017/05/20(土) 18:52
>Windows("Book2")
拡張子がありませんが、新規ブックでしたら、"Book2"の部分は都度変わってきますので これでは不都合があると思います。
ブックのFullName等で明示的にブックオブジェクトを指定してやる必要があると思います。 (カリーニン) 2017/05/20(土) 18:57
参考HPです。
http://excel-ubara.com/excelvba1/EXCELVBA353.html
私のコードに不具合がありました。 私のコードの Dim s As String を Dim s As Variant に変えて試してください。 (カリーニン) 2017/05/20(土) 19:07
セルのコピー、転記の参考HPです。
Office TANAKA - Excel VBA講座:セルの操作[セルのコピー] http://officetanaka.net/excel/vba/cell/cell09.htm (カリーニン) 2017/05/20(土) 21:20
連絡が遅くなりまして申し訳ございません。
ご指摘の通り、Book2の拡張子がなかったので止まってしまいましたが、拡張子をつけて、解決いたしました。
Workbooks(Dir(s)).Activateで指定することが分かりませんでした。
とっても勉強になりました。
また、参考HPまでお気遣いいただきまして、感謝申し上げます。
ありがとうございました。
(ひろ) 2017/05/21(日) 13:30
ご呈示のコードは最終的にどのようなことを行いたいのでしょう? セルをコピーするのは2か所出てきてますが、貼り付ける部分があり ません。
また、セルの転記をするのなら、SelectやAcvtivateは不要です。 書式をコピーする必要がないのなら、
○.Value = □.Value
のような感じで行けます。 (カリーニン) 2017/05/21(日) 13:41
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.