Показать полную графическую версию : [решено] Excel 2010 - Как вставить в книгу дату ее последнего изменения?
Grey_rnd
25-07-2016, 10:53
Что то нет никаких движений...
Вот скопированный код:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = True
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
Rem .FirstPage.CenterHeader.Text = Format(ActiveWorkbook.BuiltinDocumentProperties(12), "dd.mm.yyyy")
.Worksheets("График").Range("H1") = Format(ActiveWorkbook.BuiltinDocumentProperties(12), "dd.mm.yyyy")
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
End Sub
Что делаю не так? Макросы вроде включил в настройках...
Grey_rnd, многое «не так». Не так вставлено. И не туда вставлено.
1. Вставлять следует не в модуль «\Modules\Module1», а в модуль Рабочей книги «ЭтаКнига»:
http://i.imgur.com/eD5k0z2.png
2. Вставляйте такой код (остальное Вам для изложенной выше хотелки не нужно):
Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ThisWorkbook
.Worksheets("График").Range("H1") = Format(.BuiltinDocumentProperties.Item("Last Save Time"), "dd.mm.yyyy")
End With
End Sub
Grey_rnd
25-07-2016, 16:31
Вставлять следует не в модуль «\Modules\Module1», а в модуль Рабочей книги «ЭтаКнига» »
1. А в чем принципиальная разница?
2. В документ макрос вставлять не надо, я так понимаю (через вид-макросы)? Он выполняется автоматически при открытии файла?
3. Сделал как вы сказали, чет не пахат...))))
Grey_rnd, создайте копию вашего файла без данных, но с макросом, и выложите уже, наконец...
Grey_rnd
26-07-2016, 08:55
На конец не буду, а в теме выкладываю... Прошу посмотреть и рассказать чего я сделал не так...(
Все работает. Просто отправьте документ (фрагмент) на печать и увидите.
Grey_rnd
26-07-2016, 10:34
Все работает. Просто отправьте документ (фрагмент) на печать и увидите. »
:sorry: Повторюсь, мне бы не в печати, а так в эл. виде видеть...
Просто что бы сторонний человек открыл файл и увидел, что дата последней актуализации тогда то..
1. А в чем принципиальная разница? »
Принципиальная разница в том, что процедура обработки события «Workbook_BeforePrint()» может обрабатывать событие Workbook.BeforePrint Event (Excel) (https://msdn.microsoft.com/en-us/library/office/ff195836.aspx) только будучи в модуле «ЭтаКнига»/«ThisWorkbook» Рабочей книги. Если Вы поместите эту процедуру просто в один из модулей — это будет обычная процедура.
2. В документ макрос вставлять не надо, я так понимаю (через вид-макросы)? Он выполняется автоматически при открытии файла? »
Надо. Да.
Повторюсь, мне бы не в печати, а так в эл. виде видеть...
Просто что бы сторонний человек открыл файл и увидел, что дата последней актуализации тогда то.. »
Сторонний человек может посмотреть «дату актуализации» не открывая файл, просто в его расширенных свойствах:
http://i.imgur.com/dr1jZ6U.pngоткуда, она собственно и бралась для вставки в документ. Это основы. Объясните, что не надо изобретать велосипед да ещё и с квадратными колёсами.
процедура обработки события «Workbook_BeforePrint() »
Iska, а почему в данном случае следует использовать BeforePrint, а не Workbook_AfterSave, я видимо упустил по беседе некие требования?
Вроде логично привязать к сохранению - пользователь сохранил документ, о чем тут же осталась запись в ячейке H11. Ведь документ могут сохранить, но ни разу не напечатать.
Option Explicit
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
With ThisWorkbook
.Worksheets("График").Range("H1") = Format(.BuiltinDocumentProperties.Item("Last Save Time"), "dd.mm.yyyy")
End With
End Sub
Iska, а почему в данном случае следует использовать BeforePrint, а не Workbook_AfterSave, я видимо упустил по беседе некие требования? »
Изначально было вообще «Workbook_Open()».
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC