Свойства листов (Microsoft Excel)
Лори знает, как просматривать свойства книги Excel. Однако она хотела бы просмотреть аналогичные свойства отдельных листов. Например, она задается вопросом, есть ли способ просмотреть такие свойства, как дата создания, дата изменения, автор или «автор последнего изменения» для отдельных листов.
К сожалению, Excel не отслеживает такую информацию для листов. Единственный обходной путь, который мы смогли найти, — это создать собственную запись информации о листах в книге. Очевидный способ разработать обработчик событий Workbook_SheetChange. Ниже приведен пример того, что вы можете добавить к объекту ThisWorkbook в редакторе Visual Basic:
Private Sub Workbook_SheetChange(ByVal ws As Object, ByVal Target As Range) Dim s As Worksheet Dim J As Integer Dim FoundIt As Boolean On Error Resume Next Set s = Worksheets("Stats") On Error GoTo 0 Application.EnableEvents = False If s Is Nothing Then ' Stats worksheet did not exist Set s = Worksheets.Add(After:=Worksheets(Worksheets.Count)) s.Name = "Stats" s.Range("A1") = "Worksheet" s.Range("B1") = "Creator" s.Range("C1") = "Last Modified" s.Range("D1") = "Modifed By" With s.Range("A1:D1") .Font.Bold = True .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeBottom).Weight = xlThin End With s.Range("A2") = s.Name s.Range("B2") = s.CustomProperties.Creator s.Range("C2") = Format(Now, " mm/dd/yyyy hh:mm am/pm") s.Range("D2") = Application.UserName End If J = 2 FoundIt = False While (s.Cells(J, 1) <> "") If s.Cells(J, 1) = ws.Name Then FoundIt = True s.Cells(J, 3) = Format(Now, " mm/dd/yyyy hh:mm am/pm") s.Cells(J, 4) = Application.UserName End If J = J + 1 Wend If Not FoundIt Then ' Worksheet name not found s.Cells(J, 1) = ws.Name s.Cells(J, 2) = ws.CustomProperties.Creator s.Cells(J, 3) = Format(Now, " mm/dd/yyyy hh:mm am/pm") s.Cells(J, 4) = Application.UserName End If ws.Activate Application.EnableEvents = True End Sub
Обработчик событий запускается каждый раз, когда вы вносите изменения в книгу. Сначала он проверяет, есть ли лист с именем Stats. Если нет, то создается рабочий лист и к нему добавляется некоторая элементарная информация. Обработчик просматривает рабочий лист статистики, чтобы определить, содержат ли там данные строку для рабочего листа, на котором произошло изменение. Если нет, то добавляется строка, но если да, информация в строке обновляется.
Обработчик отслеживает только четыре части информации — имя рабочего листа, создателя, дату последнего изменения и имя пользователя, который внес это изменение. (Свойство Creator указывает числовое значение, относящееся к программе, создавшей рабочий лист. Это не очень полезно для людей, и я включил его в качестве наглядного примера того, как можно хранить информацию.)
Помните, что это всего лишь обходной путь, и вам следует тщательно продумать, какой тип информации вы хотите отслеживать для своих рабочих листов. Затем вы можете изменить код, чтобы отразить это желание.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (7542) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.