Proprietà per fogli di lavoro (Microsoft Excel)
Laurie sa come visualizzare le proprietà di una cartella di lavoro di Excel. Quello che vorrebbe fare, tuttavia, è visualizzare proprietà simili relative ai singoli fogli di lavoro. Ad esempio, si chiede se esiste un modo per visualizzare proprietà come data di creazione, data di modifica, autore o “ultima modifica da” per i singoli fogli di lavoro.
Sfortunatamente, Excel non tiene traccia di tali informazioni per i fogli di lavoro. L’unica soluzione che siamo stati in grado di capire è sviluppare il tuo record di informazioni sui fogli di lavoro nella cartella di lavoro. Un modo ovvio per sviluppare un gestore di eventi Workbook_SheetChange. Quello che segue è un esempio di quello che potresti aggiungere all’oggetto ThisWorkbook in Visual Basic Editor:
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
Il gestore eventi viene attivato ogni volta che si apporta una modifica nella cartella di lavoro. Innanzitutto verifica se è presente un foglio di lavoro denominato Stats. In caso contrario, viene creato il foglio di lavoro e vengono aggiunte alcune informazioni rudimentali. Il gestore cerca nel foglio di lavoro Stats per determinare se i dati includono una riga per il foglio di lavoro in cui si è verificata una modifica. In caso contrario, viene aggiunta una riga, ma in tal caso le informazioni nella riga vengono aggiornate.
Il gestore tiene traccia solo di quattro informazioni: il nome del foglio di lavoro, il creatore, la data dell’ultima modifica e il nome utente di chi ha apportato la modifica. (La proprietà Creator indica un valore numerico relativo al programma che ha creato il foglio di lavoro. Non è particolarmente utile per gli esseri umani e l’ho incluso come esempio illustrativo di come è possibile memorizzare le informazioni.)
Ricorda, questa è solo una soluzione alternativa e dovresti considerare attentamente quale tipo di informazioni desideri monitorare per i tuoi fogli di lavoro. È quindi possibile modificare il codice per riflettere quel desiderio.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (7542) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.