2017-02-04 7 views
1

私はこの形式でワード(.DOC)ファイル名を受け取る -
MDouglas-DouglasM-02-01-2017-493058190498601挿入部分は

をここで、

(1)」 (2) "02-01-2017"は毎日変更し続ける日付です(したがって、翌日には02-02-2017となります)。このようにして、再び、-493058190498601(k)は、kすべてのファイルで変更されます。

私は私は2つの場所でWord文書の人口たい、「2017年2月1日」の日付で唯一興味を持っています:

(1)文書の本文には、型付きの代わりに " 「月dd、yyyy」の代わりに、文書の2番目のpgヘッダーに「月dd、yyyy」、

(2)

「Month dd、yyyy」は、文書内で2回だけ入力されます。 1つは本体に、もう1つは2番目のpgヘッダーにあります。そして、私は、拡張形式で日付が移入両方の場所をしたい、それは次のとおりです。

「2017年2月1日」

は、私は次のマクロを思い付くことができます:

Selection.HomeKey Unit:=wdStory 
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _ 
    text:="FILENAME " 
Selection.TypeParagraph 

をしかし、このドキュメントの上部にある完全なファイル名のみを入力します。 VBAで提案してください。

答えて

0

これは、他の人が(私はこれがどのように行われるかに興味があると思います)

Option Explicit 

Sub Test() 

    Dim dtExtracted As Date 
    dtExtracted = ExtractDate("MDouglas-DouglasM-", "MDouglas-DouglasM-02-01-2017-493058190498601") 

End Sub 

Function ExtractDate(ByVal sPrefix As String, ByVal sFileName As String) 

    Dim lPrefixLen As Long 
    lPrefixLen = Len(sPrefix) 

    If Left$(sFileName, lPrefixLen) = sPrefix Then 

     Dim sRemainder As String 
     sRemainder = Mid$(sFileName, lPrefixLen + 1) 

     Dim vSplit As Variant 
     vSplit = VBA.Split(sRemainder, "-") 

     ReDim Preserve vSplit(0 To UBound(vSplit) - 1) 

     Dim sReJoin As String 
     sReJoin = VBA.Join(vSplit, "-") 

     If VBA.IsDate(sReJoin) Then 
      ExtractDate = CDate(sReJoin) 

     End If 

    End If 
End Function 
Rangeフィールドスワップ用のコードを実行することができ、日付を抽出します
関連する問題