1

ワークシートに名前を付けるために、日付を処理してmMonthと年を取得するために、VBAマクロで文字列変数を日付変数に変換する必要があります

Call GetMonthandYear(MonthYear, FileDate)
    ActiveSheet.Name = MonthYear

GetMonthandYear というメソッドを作成しようとしています。FileDate は、日付形式の文字列ですdd.MM.yyyy HH-mm-ss。変数を日付に変更できれば、フォーマットを に変更してからMMMM/yyyyを使用しToString、それを に割り当てることができると思いますMonthYear

文字列を日付に変更する方法はありますか?

4

3 に答える 3

2

提案されたアプローチにはいくつかの問題があります。

  1. 文字列を日付シリアルに変換すると問題が発生する可能性があり、Excelが日付をdd.MMまたはとして解釈するかどうかは保証されませんMM.dd。あらかじめフォーマットがわかっているので、月と年を直接抽出してください。
  2. \シート名の有効な文字ではありません。私は使用しまし_た、あなたが望むように代用してください

Function GetMonthandYear(FileDate As String) As String
    Dim dot1 As Long, dot2 As Long
    Dim m As String, y As String

    dot1 = InStr(FileDate, ".")
    dot2 = InStr(dot1 + 1, FileDate, ".")
    m = Mid$(FileDate, dot1 + 1, dot2 - dot1 - 1)
    y = Mid$(FileDate, dot2 + 1, InStr(FileDate, " ") - dot2 - 1)

    GetMonthandYear = Format$(DateSerial(y, m, 1), "MMMM_yyyy")
End Function

このように呼んでください

Sub Test()
    Dim FileDate As String
    FileDate = "15.04.2012 16-31-18"

    ActiveSheet.Name = GetMonthandYear(FileDate)

End Sub
于 2012-04-15T19:45:05.880 に答える
0

CDateおよびFormat機能を使用してみましたか?

于 2012-04-15T13:30:57.877 に答える
0

CDate関数を使用して日付を取得できますが、に置き換える必要があり、に-置き換える必要があります。:./

Dim yourStringDate, sBuf As String
Dim yourDateVariable As Date

yourStringDate = "15.04.2012 16-31-18"
sBuf = Replace$(yourStringDate,"-", ":")
sBuf = Replace$(sBuf, ".", "/")
yourDateVariable = CDate(sBuf)

MsgBox yourDateVariable
于 2012-04-15T13:38:10.640 に答える