Odpowiedzi:
Czy masz na myśli generowanie „23.12.2018”?
Date \@ “MM/dd/”=date \@ “yyyy”+1 (lub skopiuj i wklej)
do dokumentu Worda.
)
i „kręcone cytaty” (
) wydają się być wymienne. Date \@ “MM/dd/” i naciśnij Ctrl + F9 ,
co zmieni go w pole.
Zmieni się z wyglądu
do { Data „MM / dd /” } i może mieć szare tło.
Ta sama transformacja nastąpi
za każdym naciśnięciem Ctrl + F9 .
Nie wpisuj żadnych nawiasów klamrowych! date \@ “yyyy” i naciśnij Ctrl + F9 . = { data „yyyy” } +1 i naciśnij Ctrl + F9 .
Linia powinna teraz wyglądać tak: { Data „MM / dd /” } { = { data „yyyy” } +1 } . To trwa po prostu dzisiaj, formatuje je jako „MM / dd /” (tj. „12/23”),
a następnie podąża za rokiem bieżącym plus jeden.
(Jeśli chcesz inny format, po prostu go zmień).
Na przykład, jeśli chcesz „rrrr / MM / dd”,
zmień tekst początkowy na =date \@ “yyyy”+1Date \@ “/MM/dd” i postępuj zgodnie z tymi samymi instrukcjami
(z tą różnicą MM/dd/ został zastąpiony przez /MM/dd,
skoro chcesz / między rokiem a miesiącem,
i nie po dniu).
Nie jestem do końca pewien, co masz na myśli mówiąc „zapisz to jako makro i nazwij je”. Może tego właśnie chcesz:
Set best_date quote =date \@ “yyyy”+1Date \@ “/MM/dd”.
Możesz to zrobić gdzieś na początku dokumentu. quote { = { data „yyyy” } +1 } { Data @ „/ MM / dd” } (tj. wszystko z quote przez koniec linii)
i naciśnij Ctrl + F9 . Set best_date { zacytować { = { data „yyyy” } +1 } { Data @ „/ MM / dd” }} (tj. cała linia) i naciśnij Ctrl + F9 . best_date zawierające datę następnego roku.
Jest to dla wszystkich celów praktycznych zmienna;
może być wystarczająco blisko tego, co masz na myśli, gdy mówisz „makro”. best_date i przekształć go w pole, jak opisano powyżej
( Ctrl + F9 , F9 i Przesunięcie + F9 ). best_date jest po prostu arbitralnym identyfikatorem.
Możesz użyć dowolnego poprawnego identyfikatora, np. bob_string.
Ostrzeżenie: jeśli użyjesz tego w dniu 29 lutego 2020 r., Wyświetli się „2021/2/29”, która nie jest prawidłową datą.
OK, w komentarzu, który zgłosiłeś, po zapisaniu i ponownym otwarciu dokumentu pojawiają się pola, takie jak
{ Ustaw best_date { zacytować { = { data „yyyy” } +1 } { Data @ „/ MM / dd” }}}
a data nie pojawia się. Jest to kontrolowane przez globalne ustawienie słowa. Istnieje co najmniej kilka sposobów naprawy:
Będziesz oczywiście musiał to zrobić (jeden z powyższych) raz na każdej maszynie. Prawdopodobnie raz na maszynę na użytkownika . Lub po prostu powiedz swoim użytkownikom, aby to zrobili (Polecam Alt + F9 jeden) jeśli zobaczą wyświetlane kody pól.
Nie jestem pewien, czy rozumiem twoją inną sprawę. Mówisz tak jeśli zastosujesz się do powyższych instrukcji w dniu 28 grudnia 2017 r., otrzymasz przyszłą datę „2018/12/28”, którą chcesz, ale jeśli go zapiszesz, a następnie ponownie otworzysz 29 grudnia, nadal będzie mówić „2018/12/28”, ale chcesz powiedzieć „2018/12 / 29 ”? To trochę trudniejsze. Najwyraźniej Microsoft Word jest napisany aby nie aktualizować pól podczas otwierania dokumentu (prawdopodobnie dlatego, że teoretycznie może to zająć dużo czasu). Oto dwa rozwiązania tego:
Jak w opisie tutaj (i tutaj ),
Niestety, każdy użytkownik będzie musiał się nauczyć to każdy czas otwierania dokumentu (lub przynajmniej każdego dnia).
Jak w opisie tutaj , Napisać AutoOpen makro, które mówi
Sub AutoOpen()
With Options
.UpdateFieldsAtPrint = True
.UpdateLinksAtPrint = True
End With
ActiveDocument.Fields.Update
End Sub
Widzieć Jak dodać VBA w MS Office? ogólne informacje o mechanice tego.
Polecam opcję 1; makra mogą być nieuporządkowane. Ale jeśli Twoi użytkownicy są odporni na uczenie się nowych procedur, opcja 2 może być lepszym wyborem dla Ciebie.