Apriamo una nuova cartella di lavoro Excel e per ogni foglio ricreiamo la situazione in figura.
|
|
 |
|
I valori di riga e colonna delimitano unarea di foglio (CurrentRegion).
La routine riempie le celle interne allarea con dei numeri casuali da 1 a 90.
|
|
CurrentRegion: Restituisce un oggetto Range, che rappresenta l'area corrente, che è costituita da un intervallo
delimitato da una qualsiasi combinazione di righe e colonne vuote.
|
|
Sub RiempiArea()
For Each f In Worksheets
Set Zc = f.Range("B2").CurrentRegion
Nr = Zc.Rows.Count
Nc = Zc.Columns.Count
Set Zc = Zc.Offset(1, 1).Resize(Nr - 1, Nc - 1)
For Each C In Zc
C.Value = Int(Rnd * 90 + 1)
Next
Next
End Sub
|
|
Esempio 13 |
|
L'esempio crea la "Serie di Fibonacci" in base al numero di occorrenze specificato
dalla finestra di input (esempio di creazione formule).
FormulaR1C1: Restituisce o imposta la formula per l'oggetto utilizzando un riferimento di tipo R1C1.
Proprietà di tipo Variant di lettura-scrittura per gli oggetti Range e di tipo String di
lettura-scrittura per gli oggetti Series.
|
|
Sub LanciaFib()
With Selection
.Offset(-1).Value = 1
.Offset(-2).Value = 0
End With
C = InputBox("Quanto lunga vuoi la serie?")
For i = 1 To C - 1
Fibonacci Selection
Selection.Offset(1).Select
Next
End Sub
Sub Fibonacci(Zonafib As Object)
Zonafib.FormulaR1C1 = "=R[-2]C+R[-1]C"
End Sub
|
|
Esempio 14 |
|
La routine genera la serie dei mesi, partendo dalla cella attiva.
|
|
Gennaio |
Febbraio |
Marzo |
Aprile |
Maggio |
Giugno |
Luglio |
Agosto |
Settembre |
Ottobre |
Novembre |
Dicembre |
|
|
Sub CopiaMese()
Worksheets("foglio1").Select
Set C = ActiveCell
C.Value = InputBox("Dammi un mese")
Set Intervdest = Range(C, C.Offset("11"))
mess = "In Basso (Si) o verso destra(No)"
Dimmitu = MsgBox(mess, vbYesNo, ricopia)
If Dimmitu = vbNo Then
Set Intervdest = Range(C, C.Offset(0, 11))
End If
C.AutoFill Destination:=Intervdest, Type:=xlRicopiaMesi
End Sub
|
|
Esempio 15 |
|
Partendo dalla Cella "B4" generiamo unarea di valori e formule.
Non è importante quali formule l'importante è che l'area sia continua.
La routine copia la regione appena creata da foglio1 a foglio3.
|
|
Sub SpostaRegione()
ActiveWorkbook.Names.Add Name:="Inizon",_
RefersToR1C1:=Worksheets("foglio3").Range("B4")
Set Zonaformule = Worksheets("foglio3").Range("Inizon").CurrentRegion
ActiveWorkbook.Names.Add Name:="formulina", _
RefersToR1C1:=Range("B4").CurrentRegion
Range("formulina").Copy Zonaformule
End Sub
|
|
Esempio 16 |
|
Riferendosi allesempio precedente sostituisce le formule coi valori delle celle.
|
|
Sub EliminaFormule()
ActiveSheet.Range("Inizon").CurrentRegion.Select
For Each MiaC In Selection
MiaC.Value = MiaC
Next
End Sub
|
|
Esempio 17 |
|
Variante dellesempio sopra.
|
|
Sub EliminaFormule()
ActiveSheet.Range("Inizon").CurrentRegion.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End Sub
|
|