2017-05-16 8 views
0

毎日1つのファイルが前回の作業日として作成されます。 例、(05/16/2017、火曜日)ファイルは、月曜日05/15/2017として日付で作成されます。 2011年5月15日、月曜日のファイルは05/12/2017として作成されます。VBAでファイルを開くときに週末を除外する方法は?

"C:\users\Duke\report'05/15/2017'.XLS"

sub OpenFile()  
    Const fpath As String = "C:\users\Duke\Report" 
    Dim fname As String 

fname = Format(Date - (Weekday((Date),Vbmonday) - 1), "yyyy-mm-dd") 
fname = "'" & fname & "'" & ".XLS" 

    Dim path As String 
path = fpath & fname 

end() 

私は以下のコードでVBAを使用してファイルを開くしようとしています

、 ファイル名のフォーマット=しかし、それは動作していない、お勧めしてください。

+0

「機能しない」とはどういう意味ですか?文法では、最後の行は 'End Sub'でなければなりません。' end OpenFile() 'ファイルを開く文を実行する行はありません。 –

+0

このコードが月曜日に実行された場合、fnameは0を返すので、fridays日付のファイルが開いていないことを意味します。 –

+0

また、 "C:\ users \ Duke \ Reportreport'05/15/2017'.XLS"というファイルを呼び出しているため、パスの最後に "/"を追加する必要があります。実行時に変数debug.printを使用して、コードが実際に何を呼び出しているかを確認する必要があります。 –

答えて

0

VBAには、稼働日を処理するための組み込みメソッドがありません。あなたのコードだけMFとSSある週末を実行する場合でも、次は、目的の日付を計算することがあります

Dim X As Long 
    X = IIf(Weekday(Date) = vbMonday, 3, 1) 
fname = Format(Date - X, "yyyy-mm-dd") 

あなたのコードはまた、週末に実行する可能性がある場合は、あなたが、あなたが起こるしたいものを定義する必要がありますそのイベント

関連する問題