Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Le righe 1 e 3 iniziano con un punto (sottintendono la variabile sh1)
la riga 2 invece inizia con la variabile sh2 e sembra non far parte dello stesso raggruppamento With.
E' una forma che non avevo mai visto prima!
Grazie ancora
Si chiama: programmazione ad oggetti ed evita quelli che sono gli errori più comuni.
Ecco il codice commentato:
Public Sub m()
'in caso di errore
On Error GoTo RigaErrore
'dichiaro due variabili di tipo Worksheet
Dim sh1 As Worksheet
Dim sh2 As Worksheet
'NomeOggetto With permette di scrivere
'meno codice riferendosi a metodi/proprietà/eventi
'dell'oggetto che viene prima del With; qui sotto
'il Workbook che contiene il codice
With ThisWorkbook
'metto un riferimento ai fogli per
'ciascuna variabile
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
'qui sotto With consente di gestire
'metodi/proprietà/eventi del Foglio1
'al quale sh1 fa riferimento
With sh1
'elimino la formattazione del Foglio1
'per il Range specificato
.Range("A1:C12").ClearFormats
'copio la formattazione del Foglio2
'per il Range specificato; devo mettere sh2
'perchè sono all'interno del With riferito
'a sh1
sh2.Range("A1:C12").Copy
'incollo la formattazione nel Foglio1
'per il Range specificato
.Range("A1:C12").PasteSpecial xlPasteFormats
End With
'riga sempre eseguita
RigaChiusura:
'Set a Nothing delle variabili oggetto
Set sh2 = Nothing
Set sh1 = Nothing
Exit Sub
'in caso di errore
RigaErrore:
'restituisco nella MsgBox il numero ed il tipo di errore
MsgBox Err.Number & vbNewLine & Err.Description
'vado alla riga di chiusura
Resume RigaChiusura
End Sub
E vedi qui: