| 
    
     |  | こんにちは。かみちゃん です。 
 >どこが問題なのかアドバイスお願いします。
 
 コード全体がないようですので、何ともいえませんが、
 shtname = DateSerial(Year(txt), Month(txt) + 1, Day(txt))
 のコードでもエラーになると思います。
 まず、
 変数 shtname の宣言がない
 変数 txt のデータ型がString型である
 そのため
 txt = Sheets(Sheets.Count).Name
 の内容によっては、「型が一致しません」のエラーになります。
 
 シートコピー前の末尾のシートのシート名は、どのようなものを設定しているのでしょうか?
 
 その上で、本題ですが、
 
 > .Name = Format(Worksheets(shtname). _
 >      Value, "yyyy""年""mm""月"";@")
 
 まだ、変数 shtname の名前のシートはできていないため、
 また、WorksheetsオブジェクトにValueプロパティはないため、
 .Name = Format(shtname, "yyyy""年""mm""月"";@")
 でいいのではないでしょうか?
 
 
 |  |