Utili proprietà delloggetto intervallo per Excel VBA che tutti dovrebbero sapere

Utili proprietà delloggetto intervallo per Excel VBA che tutti dovrebbero sapere

Un oggetto Range ha dozzine di proprietà. Puoi scrivere programmi VBA senza interruzioni per i prossimi 12 mesi e non usarli mai tutti. Qui viene fornita una breve panoramica di alcune delle proprietà dell'intervallo VBA di Excel più comunemente utilizzate. Per i dettagli completi, consultare il sistema di aiuto nel VBE. (Dai un'occhiata a queste risorse aggiuntive per assistenza con Excel VBA .)

Alcune proprietà dell'intervallo VBA di Excel sono proprietà di sola lettura, il che significa che il tuo codice può guardare i loro valori ma non può cambiarli ("Guarda, ma non toccare"). Ad esempio, ogni oggetto Intervallo VBA di Excel dispone di una proprietà Indirizzo, che contiene l'indirizzo dell'intervallo. Puoi accedere a questa proprietà di sola lettura, ma non puoi cambiarla, il che ha perfettamente senso quando ci pensi.

A proposito, gli esempi che seguono sono in genere istruzioni piuttosto che procedure complete. Se desideri provare uno di questi (e dovresti), crea una procedura Sub per farlo. Inoltre, molte di queste istruzioni VBA funzionano correttamente solo se un foglio di lavoro è il foglio attivo.

VBA di Excel: la proprietà Value

La proprietà Value rappresenta il valore contenuto in una cella. È una proprietà di lettura-scrittura, quindi il tuo codice VBA può leggere o modificare il valore.

La seguente istruzione visualizza una finestra di messaggio che mostra il valore nella cella A1 su Sheet1:

MsgBox Worksheets ("Foglio1"). Intervallo ("A1"). Valore

È ovvio che è possibile leggere la proprietà Value solo per un oggetto Range a cella singola. Ad esempio, la seguente istruzione genera un errore:

MsgBox Worksheets ("Foglio1"). Intervallo ("A1: C3"). Valore

È possibile, tuttavia, modificare la proprietà Value per un intervallo di qualsiasi dimensione. La seguente istruzione inserisce il numero 123 in ogni cella in un intervallo:

Fogli di lavoro ("Foglio1"). Intervallo ("A1: C3"). Valore = 123

Value è la proprietà predefinita per un oggetto Range VBA di Excel. In altre parole, se si omette una proprietà per un intervallo, Excel utilizza la sua proprietà Value. Le seguenti istruzioni immettono entrambe un valore di 75 nella cella A1 del foglio di lavoro attivo:

Intervallo ("A1"). Valore = 75
Intervallo ("A1") = 75

VBA di Excel: la proprietà Text

La proprietà Text restituisce una stringa che rappresenta il testo così come viene visualizzato in una cella: il valore formattato. La proprietà Text è di sola lettura. Supponiamo che la cella A1 contenga il valore 12,3 e sia formattata per visualizzare due decimali e un simbolo di dollaro ($ 12,30). La seguente istruzione visualizza una finestra di messaggio contenente $ 12,30:

MsgBox Worksheets("Foglio1").Intervallo("A1").Testo

Ma l'istruzione successiva visualizza una finestra di messaggio contenente 12.3:

MsgBox Worksheets ("Foglio1"). Intervallo ("A1"). Valore

Se la cella contiene una formula, la proprietà Text restituisce il risultato della formula. Se una cella contiene testo, la proprietà Text e la proprietà Value restituiscono sempre la stessa cosa, perché il testo (a differenza di un numero) non può essere formattato per essere visualizzato in modo diverso.

VBA di Excel: la proprietà Count

La proprietà Count restituisce il numero di celle in un intervallo. Conta tutte le celle, non solo le celle non vuote. Count è una proprietà di sola lettura, proprio come ci si aspetterebbe. La seguente istruzione accede alla proprietà Count di un intervallo e visualizza il risultato (9) in una finestra di messaggio:

MsgBox Range ("A1: C3"). Conteggio

VBA di Excel: le proprietà di colonna e riga

La proprietà Column restituisce il numero di colonna di un intervallo di celle singole. Il suo compagno, la proprietà Row, restituisce il numero di riga di un intervallo di celle singole. Entrambe sono proprietà di sola lettura. Ad esempio, la seguente istruzione visualizza 6 perché la cella F3 si trova nella sesta colonna:

MsgBox Fogli("Foglio1").Intervallo("F3").Colonna

L'espressione successiva visualizza 3 perché la cella F3 si trova nella terza riga:

MsgBox Fogli("Foglio1").Intervallo("F3").Riga

Se l'oggetto Range VBA di Excel è costituito da più di una cella, la proprietà Column restituisce il numero di colonna della prima colonna nell'intervallo e la proprietà Row restituisce il numero di riga della prima riga nell'intervallo.

Non confondere le proprietà Colonna e Riga con le proprietà Colonne e Righe. Le proprietà Column e Row restituiscono un singolo valore. Le proprietà Columns e Rows, invece, restituiscono un oggetto Range. Che differenza fa una "s".

VBA di Excel: la proprietà Indirizzo

Address, una proprietà di sola lettura, visualizza l'indirizzo di cella per un oggetto Range come riferimento assoluto (un segno di dollaro prima della lettera di colonna e prima del numero di riga). L'istruzione seguente visualizza la finestra di messaggio mostrata di seguito:

MsgBox Range(Cells(1, 1), Cells(5, 5)).Address

Utili proprietà dell'oggetto intervallo per Excel VBA che tutti dovrebbero sapere

Questa finestra di messaggio visualizza la proprietà Indirizzo di un intervallo 5 per 5.

VBA di Excel: la proprietà HasFormula

The HasFormula property (which is read-only) returns True if the single-cell range contains a formula. It returns False if the cell contains something other than a formula (or is empty). If the range consists of more than one cell, VBA returns True only if all cells in the range contain a formula or False if all cells in the range don’t have a formula. The property returns Null if the range contains a mixture of formulas and nonformulas. Null is kind of a no-man’s land: The answer is neither True nor False, and any cell in the range may or may not have a formula.

You need to be careful when you work with properties that can return Null. More specifically, the only data type that can deal with Null is Variant.

For example, assume that cell A1 contains a value and cell A2 contains a formula. The following statements generate an error because the range doesn’t consist of all formulas or all nonformulas:

Dim FormulaTest As Boolean
FormulaTest = Range("A1:A2").HasFormula

The Boolean data type can handle only True or False. Null causes Excel to complain and display an error message. To fix this type of situation, the best thing to do is make sure that the FormulaTest variable is declared as a Variant rather than as a Boolean. The following example uses VBA’s handy TypeName function (along with an If-Then-Else construct) to determine the data type of the FormulaTest variable. If the range has a mixture of formulas and nonformulas, the message box displays Mixed! Otherwise, it displays True or False.

Sub CheckForFormulas()
  Dim FormulaTest As Variant
  FormulaTest = Range("A1:A2").HasFormula
  If TypeName(FormulaTest) = "Null" Then
    MsgBox "Mixed!"
  Else
    MsgBox FormulaTest
  End If
End Sub

Excel VBA: The Font property

A property can return an object. The Font property of an Excel VBA Range object is another example of that concept at work. The Font property returns a Font object.

A Font object, as you may expect, has many accessible properties. To change some aspect of a range’s font, you must first access the range’s Font object and then manipulate the properties of that object. This may be confusing, but perhaps this example will help.

The following statement uses the Font property of the Range object to return a Font object. Then the Bold property of the Font object is set to True. In plain English, this statement makes the cell display in boldface:

Range("A1").Font.Bold = True

Truth is, you don’t really need to know that you’re working with a special Font object that’s contained in an Excel VBA Range object. As long as you use the proper syntax, it works just fine. Often, recording your actions with the macro recorder tells you everything you need to know about the proper syntax.

Excel VBA: The Interior property

Here’s yet another example of a property that returns an object. A Range object’s Interior property returns an Interior object (strange name, but that’s what it’s called). This type of object referencing works the same way as the Font property.

For example, the following statement changes the Color property of the Interior object contained in the Range object:

Range("A1").Interior.Color = 8421504

In altre parole, questa affermazione cambia lo sfondo della cella in grigio medio. Che cos'è? Non sapevi che 8421504 è grigio medio? Per alcuni approfondimenti sul meraviglioso mondo dei colori di Excel, vedere la barra laterale vicina "Un primer di colore veloce e sporco".

VBA di Excel: la proprietà Formula

La proprietà Formula rappresenta la formula in una cella. Questa è una proprietà di lettura-scrittura, quindi puoi accedervi per visualizzare la formula in una cella o inserire una formula in una cella. Ad esempio, la seguente istruzione inserisce una formula SUM nella cella A13:

Intervallo("A13").Formula = "=SOMMA(A1:A12)"

Notare che la formula è una stringa di testo ed è racchiusa tra virgolette. Nota anche che la formula inizia con un segno di uguale, come fanno tutte le formule.

Se la formula stessa contiene virgolette, le cose si complicano. Diciamo che vuoi inserire questa formula usando VBA:

=SOMMA(A1:A12)&"Negozi"

Questa formula visualizza un valore seguito dalla parola Stores . Per rendere accettabile questa formula, è necessario sostituire ogni virgoletta nella formula con due virgolette. Altrimenti, VBA si confonde e afferma che c'è un errore di sintassi (perché c'è!). Quindi ecco un'istruzione che inserisce una formula che contiene virgolette:

Intervallo("A13").Formula = "=SOMMA(A1:A12)&"" Memorizza"""

A proposito, puoi accedere alla proprietà Formula di una cella anche se la cella non ha una formula. Se una cella non ha una formula, la proprietà Formula restituisce lo stesso della sua proprietà Value.

Se hai bisogno di sapere se una cella ha una formula, usa la proprietà HasFormula.

Tieni presente che VBA "parla" inglese americano. Ciò significa che per inserire una formula in una cella, è necessario utilizzare la sintassi statunitense. Se utilizzi una versione non inglese di Excel, leggi la proprietà FormulaLocal nel sistema della Guida.

VBA di Excel: la proprietà NumberFormat

La proprietà NumberFormat rappresenta il formato numerico (espresso come stringa di testo) dell'oggetto Range. Questa è una proprietà di lettura-scrittura, quindi il tuo codice VBA può esaminare il formato del numero o modificarlo. La seguente istruzione modifica il formato numerico della colonna A in una percentuale con due cifre decimali:

Colonne("A:A").NumberFormat = "0,00%"

Segui questi passaggi per vedere un elenco di altri formati numerici (meglio ancora, accendi il registratore di macro mentre lo fai):

Attiva un foglio di lavoro.

Premi Ctrl+1 per accedere alla finestra di dialogo Formato celle.

Fare clic sulla scheda Numero.

Seleziona la categoria Personalizzato per visualizzare e applicare alcune stringhe di formato numerico aggiuntive.


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet è una piattaforma di lavoro dinamica che ti consente di gestire progetti, creare flussi di lavoro e collaborare con il tuo team.

SharePoint

SharePoint

SharePoint è un sistema di collaborazione basato sul Web che utilizza una varietà di applicazioni per flussi di lavoro, database di "elenco" e altri componenti Web, nonché funzionalità di sicurezza per fornire controllo ai gruppi aziendali che lavorano insieme.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar è un'applicazione per la visualizzazione del calendario sul tuo telefono, che ti aiuta a vedere rapidamente la data lunisolare sul tuo telefono, organizzando così il tuo lavoro importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook è un'applicazione aziendale e di produttività sviluppata da Microsoft Corporation.

Fare clic su

Fare clic su

ClickUp è una delle piattaforme di produttività più apprezzate per qualsiasi azienda. Grandi aziende come Google, Booking.com, San Diego Padres e Uber utilizzano ClickUp per aumentare la produttività sul posto di lavoro.

Visualizzatore PDF-XChange 2.5.322.10

Visualizzatore PDF-XChange 2.5.322.10

Il PDF è diventato un formato comunemente utilizzato per leggere, creare e inviare documenti di testo. A sua volta, c'è stato un aumento del numero di programmi utilizzati per questo tipo di documentazione. PDF-XChange Viewer fa parte di un numero crescente di visualizzatori PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice offre una suite completa di applicazioni Office che rivaleggiano con Microsoft 365, in particolare in Excel, PowerPoint e Word. Ti consente di gestire i tuoi progetti in modo più efficace e supporta diversi formati di file.

Scarica iTaxviewer 1.8.7

Scarica iTaxviewer 1.8.7

Il software iTaxViewer è il software di lettura di file XML più popolare oggi. Questo software è un'applicazione per la lettura delle dichiarazioni fiscali elettroniche in formato XML del Dipartimento Generale delle Imposte.

Lettore PDF Nitro

Lettore PDF Nitro

Nitro PDF Reader è un pratico editor PDF che copre tutte le attività di base che la maggior parte delle persone esegue ogni giorno con i documenti PDF.

Foxit Reader 12

Foxit Reader 12

Foxit Reader è principalmente un lettore PDF e consente anche di creare file PDF, firmarli, modificarli e aggiungere annotazioni. Funziona su sistemi operativi, ci sono plugin per vari programmi del pacchetto Microsoft Office.