2010-04-27 16 views
6

Çok basit bir sözcük makrosu içeren bir Word belgesi oluşturmaya çalışıyorum. Makro, metne yerleştirdiğim bir yer işareti arar ve daha sonra, o konumda 2 hafta içinde bir tarih ekler.Word-VBA'da bir yer işaretine nasıl geçilir ve metin eklenir?

Ancak şablondan yeni bir belge oluşturduğumda, yer işareti almaya devam ediyorum. Çok fazla zaman geçirdim ve bazen yer imi var, bazen orada ama "Git" e tıklamamanıza izin vermiyor.

Nasıl çalışırım? Document_New() olayına küçük bir kod parçası ekledim ancak bu durum bildirimini saklı tutuyor Bookmark im.

Web sunucum .dotm uzantılarını işleyemediğinden belgeyi bir rar dosyasında aldım. Document

Bu belgeden yeni bir belge oluşturulduğunda, yeni belgenin 2 hafta önce 2 kalın bölüm arasında yerleştirildiği tarih var mı?

Sub Two_Weeks_Ahead() 
''# Two_Weeks_Ahead Makro 
    Selection.GoTo What:=wdGoToBookmark, Name:="TwoWeeks" 
    With ActiveDocument.Bookmarks 
     .DefaultSorting = wdSortByName 
     .ShowHidden = False 
    End With 

    Dim dt As Date 
    dt = DateAdd("d", 14, DateTime.Now) 

    Selection.TypeText Text:=Format(dt, "yyyy-MM-dd") 
End Sub 

Private Sub Document_New() 
    Selection.GoTo What:=wdGoToBookmark, Name:="TwoWeeks" 
    With ActiveDocument.Bookmarks 
     .DefaultSorting = wdSortByName 
     .ShowHidden = False 
    End With 

    Dim dt As Date 
    dt = DateAdd("d", 14, DateTime.Now) 

    Selection.TypeText Text:=Format(dt, "yyyy-MM-dd") 
End Sub 
+0

Kodu doğrudan cevabınıza kopyalayabilir misiniz? –

cevap

1

Bunun nedeni kodunuzda ActiveDocument kullanımının olabilir. Çağıran makronun belgesi hala ActiveDocument olabilir, bu yüzden herhangi bir yer işareti bulamaz. İşte, iyi çalışan bir çağıran makro özellikli belge/şablondan bunu nasıl yapacağım.

Sub AddTwoWeeks() 
    Dim d As Document 
    Set d = Documents.Add("C:\Users\Me\Desktop\Title.dotx") 

    Dim dt As Date 
    dt = DateAdd("d", 14, DateTime.Now) 

    Dim b As Bookmark 
    Set b = d.Bookmarks("TwoWeeks") 
    b.Range.Text = Format(dt, "yyyy-MM-dd") 
End Sub 
İlgili konular