E2 = "10-Apr-16"のExcelシートをカスタム形式として使用しています。そして、私はその週番号(多分16)を返したいと思います。私は(E2アクティブで)使用コード:Excel VBA Format関数が希望の日付を返しません
With ActiveCell
.NumberFormat = "mm/dd/yyyy"
.Value = Date
End With
oneDate = Format(Range("E2").Select, "mm/dd/yyyy")
weekNumber = DatePart("ww", oneDate)
oneDateは、1899年12月29日であることが判明し、WeekNumberは私のコードの何が問題である52であることを???
アップデート:私は、後にコードを変更し
:これで
Range("E:E").NumberFormat = "m/dd/yyyy"
oneDate = Range("E2")
oneDate = Format(Range("E2").Select, "m/dd/yyyy")
weekNumber = DatePart("ww", oneDate)
、私はoneDateとして1899年12月29日を取得し、weekNumberなど52。
3行目がない場合(または1行目がなくても)、コードは正しく動作し、weekNumberとして16を返します。
3行目(1行目の有無にかかわらず)は、1899年12月29日にはまだ返されました。
私はこの問題が3行目のコードにあると思いますが、それが何であるかはわかりません。私はそれがどうやって間違っていたのか誰にも分かりますか
ありがとうございます。原因は、datepart関数を使用する前に日付を2回書式設定していたようです。たぶん、2番目の書式設定は、1899年と解釈される一連のシリアル番号に日付を付けました。 –