Внимание: акция!
Только 31 декабря и 1 января — скидка на все надстройки 50% при оплате через СБП
(оплачиваете половину от стоимости, указанной на странице приобретения лицензии)
|
Макросы для Excel. Парсинг сайтов. Программист Excel. Надстройки для Excel, и макросы VBA под заказ. |
|
|
Только 31 декабря и 1 января — скидка на все надстройки 50% при оплате через СБП
Чтобы заполнить встроенные свойства (например, Тема, Руководитель, Организация, Автор, Категория, Ключевые слова, Название, Комментарий и т.д.) документа Excel, можно воспользоваться функцией FillWorkbookProperties: Sub ПримерИспользования_FillWorkbookProperties() FillWorkbookProperties ActiveWorkbook, "Название", "Тема", "Автор", "Ключевые Слова", , "EducatedFool", , "Компания" End Sub Код функции FillWorkbookProperties: Sub FillWorkbookProperties(ByRef wb As Workbook, _ Optional ByVal Title As String = vbNullString, Optional ByVal Subject As String = vbNullString, _ Optional ByVal Author As String = vbNullString, Optional ByVal Keywords As String = vbNullString, _ Optional ByVal Template As String = vbNullString, Optional ByVal LastAuthor As String = vbNullString, _ Optional ByVal Manager As String = vbNullString, Optional ByVal Company As String = vbNullString) On Error Resume Next MyComment = "http://excelvba.ru/" & vbNewLine & _ "Разработка макросов любой сложности " & "для Excel, Word, CorelDRAW" & vbNewLine With wb.BuiltinDocumentProperties If Len(Title) Then .Item(1) = Title If Len(Subject) Then .Item(2) = Subject If Len(Author) Then .Item(3) = Author If Len(Template) Then .Item(4) = Template .Item(5) = MyComment If Len(LastAuthor) Then .Item(7) = LastAuthor If Len(Manager) Then .Item(20) = Manager If Len(Company) Then .Item(21) = Company End With End Sub Список индексов всех доступных свойств:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Комментарии
Разобрался. Формат даты такой: "1888-01-01 07:19:50"
Однако, после сохранения, установленный руками индекс «Last Save Time» слетает на актуальный.
Значит - скрипт для смены даты, увы, не годится.
Есть решение на VBS, но не полноценное:
=======================================
Option Explicit
Dim sSrc, oWB, oProp
With CreateObject("Excel.Application")
.Visible = False
.DisplayAlerts = False
For Each sSrc in WScript.Arguments
On Error Resume Next
Set oWB = .Workbooks.Open(sSrc)
On Error Goto 0
If .Workbooks.Count > 0 Then
For Each oProp In oWB.BuiltinDocumentProperties
oProp.Value = Empty
Next
.UserName = " "
oWB.Save
oWB.Close
End If
Next
.Quit
End With
CreateObject("WScript.Shell").PopUp "Completed", 1, , 64
=======================================
Вот бы его допилить...
* точнее, я не могу понять, в каком ФОРМАТЕ нужно указать дату, например, у 12-го индекса LastSaveTime.
Внутри core.xml файла XLSX она указана, как: 2015-12-05T07:19:50Z
Или Вы, уважаемый EducatedFool, не разбирались с этим?
Уважаемые коллеги!
Ни как не могу сообразить, как покиллить ДВА поля "Creation Date" и "Last Save Time" средствами Вашего скрипта.
Буду благодарен за совет.
Отправить комментарий