Nyttige områdeobjektegenskaper for Excel VBA som alle bør kjenne til

Et Range-objekt har dusinvis av egenskaper. Du kan skrive VBA-programmer nonstop de neste 12 månedene og aldri bruke dem alle. Her får du en kort oversikt over noen av de mest brukte Excel VBA Range-egenskapene. For fullstendige detaljer, se hjelpesystemet i VBE. (Sjekk ut disse tilleggsressursene for å få hjelp med Excel VBA .)

Noen Excel VBA Range-egenskaper er skrivebeskyttede egenskaper, noe som betyr at koden din kan se på verdiene deres, men ikke endre dem ("Se, men ikke rør"). For eksempel har hvert Excel VBA Range-objekt en Address-egenskap, som inneholder områdets adresse. Du kan få tilgang til denne skrivebeskyttede egenskapen, men du kan ikke endre den – noe som gir perfekt mening når du tenker på det.

Forresten, eksemplene som følger er typisk utsagn i stedet for komplette prosedyrer. Hvis du vil prøve noen av disse (og du burde), lag en underprosedyre for å gjøre det. Mange av disse VBA-setningene fungerer bare riktig hvis et regneark er det aktive arket.

Excel VBA: Verdi-egenskapen

Verdi-egenskapen representerer verdien i en celle. Det er en lese-skrive-egenskap, så VBA-koden din kan enten lese eller endre verdien.

Følgende setning viser en meldingsboks som viser verdien i celle A1 på Ark1:

MsgBox Worksheets("Sheet1"). Range("A1"). Verdi

Det er naturlig at du bare kan lese verdi-egenskapen for et enkeltcelle-områdeobjekt. For eksempel genererer følgende setning en feil:

MsgBox Worksheets("Sheet1"). Range("A1:C3").Verdi

Du kan imidlertid endre verdi-egenskapen for et område av enhver størrelse. Følgende setning legger inn tallet 123 i hver celle i et område:

Regneark("Ark1"). Område("A1:C3"). Verdi = 123

Verdi er standardegenskapen for et Excel VBA Range-objekt. Med andre ord, hvis du utelater en egenskap for et område, bruker Excel egenskapen Value. Følgende setninger skriver begge inn en verdi på 75 i celle A1 i det aktive regnearket:

Range("A1"). Verdi = 75
Område("A1") = 75

Excel VBA: Tekst-egenskapen

Tekst-egenskapen returnerer en streng som representerer teksten slik den vises i en celle – den formaterte verdien. Tekst-egenskapen er skrivebeskyttet. Anta at celle A1 inneholder verdien 12,3 og er formatert til å vise to desimaler og et dollartegn ($12,30). Følgende uttalelse viser en meldingsboks som inneholder $12,30:

MsgBox Worksheets("Sheet1").Range("A1").Tekst

Men den neste setningen viser en meldingsboks som inneholder 12.3:

MsgBox Worksheets("Sheet1"). Range("A1"). Verdi

Hvis cellen inneholder en formel, returnerer egenskapen Tekst resultatet av formelen. Hvis en celle inneholder tekst, returnerer tekstegenskapen og verdiegenskapen alltid det samme, fordi tekst (i motsetning til et tall) ikke kan formateres til å vises annerledes.

Excel VBA: The Count-egenskapen

Egenskapen Count returnerer antall celler i et område. Den teller alle cellene, ikke bare de ikke-blanke cellene. Count er en skrivebeskyttet egenskap, akkurat som du forventer. Følgende setning får tilgang til et områdes Count-egenskap og viser resultatet (9) i en meldingsboks:

MsgBox Range("A1:C3"). Count

Excel VBA: Kolonne- og radegenskapene

Kolonne-egenskapen returnerer kolonnenummeret til et enkeltcelleområde. Dens sidekick, Row-egenskapen, returnerer radnummeret til et enkeltcelleområde. Begge er skrivebeskyttede egenskaper. For eksempel viser følgende setning 6 fordi celle F3 er i den sjette kolonnen:

MsgBox Sheets("Sheet1"). Range("F3"). Kolonne

Det neste uttrykket viser 3 fordi celle F3 er i den tredje raden:

MsgBox Sheets("Sheet1"). Range("F3"). Rad

Hvis Excel VBA Range-objektet består av mer enn én celle, returnerer Column-egenskapen kolonnenummeret til den første kolonnen i området, og Row-egenskapen returnerer radnummeret til den første raden i området.

Ikke forveksle kolonne- og radegenskapene med kolonner og rader. Kolonne- og radegenskapene returnerer én enkelt verdi. Egenskapene Columns og Rows returnerer derimot et Range-objekt. For en forskjell en "s" gjør.

Excel VBA: Adresse-egenskapen

Adresse, en skrivebeskyttet egenskap, viser celleadressen for et Range-objekt som en absolutt referanse (et dollartegn før kolonnebokstaven og før radnummeret). Følgende uttalelse viser meldingsboksen vist nedenfor:

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

Nyttige områdeobjektegenskaper for Excel VBA som alle bør kjenne til

Denne meldingsboksen viser Adresse-egenskapen til et 5-av-5-område.

Excel VBA: HasFormula-egenskapen

HasFormula-egenskapen (som er skrivebeskyttet) returnerer True hvis enkeltcelleområdet inneholder en formel. Den returnerer False hvis cellen inneholder noe annet enn en formel (eller er tom). Hvis området består av mer enn én celle, returnerer VBA bare True hvis alle cellene i området inneholder en formel eller False hvis alle cellene i området ikke har en formel. Egenskapen returnerer Null hvis området inneholder en blanding av formler og ikke-formler. Null er et slags ingenmannsland: Svaret er verken sant eller usant, og enhver celle i området kan ha en formel eller ikke.

Du må være forsiktig når du arbeider med egenskaper som kan returnere Null. Mer spesifikt, den eneste datatypen som kan håndtere Null er Variant.

Anta for eksempel at celle A1 inneholder en verdi og celle A2 inneholder en formel. Følgende setninger genererer en feil fordi området ikke består av alle formler eller alle ikke-formler:

Dim formelTest som boolsk
FormulaTest = Range("A1:A2").HarFormula

Den boolske datatypen kan bare håndtere True eller False. Null får Excel til å klage og vise en feilmelding. For å fikse denne typen situasjoner er det beste du kan gjøre å sørge for at FormulaTest-variabelen er deklarert som en variant i stedet for som en boolsk. Følgende eksempel bruker VBAs hendige TypeName-funksjon (sammen med en If-Then-Else-konstruksjon) for å bestemme datatypen til FormulaTest-variabelen. Hvis området har en blanding av formler og ikke-formler, viser meldingsboksen Blandet! Ellers viser den True eller False .

Sub CheckForFormulas()
  Dim formelTest som variant
  FormulaTest = Range("A1:A2").HarFormula
  Hvis TypeName(FormulaTest) = "Null" Da
    MsgBox "Blandet!"
  Ellers
    MsgBox FormulaTest
  Slutt om
End Sub

Excel VBA: Font-egenskapen

En egenskap kan returnere et objekt. Font-egenskapen til et Excel VBA Range-objekt er et annet eksempel på det konseptet på jobb. Font-egenskapen returnerer et Font-objekt.

Et Font-objekt har, som du kanskje forventer, mange tilgjengelige egenskaper. For å endre et aspekt av et områdes font, må du først få tilgang til områdets Font-objekt og deretter manipulere egenskapene til det objektet. Dette kan være forvirrende, men kanskje dette eksemplet vil hjelpe.

Følgende setning bruker Font-egenskapen til Range-objektet for å returnere et Font-objekt. Deretter settes Bold-egenskapen til Font-objektet til True. På vanlig engelsk får denne setningen cellen til å vises med fet skrift:

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

Sannheten er at du egentlig ikke trenger å vite at du arbeider med et spesielt Font-objekt som er inneholdt i et Excel VBA Range-objekt. Så lenge du bruker riktig syntaks, fungerer det helt fint. Ofte forteller opptak av handlingene dine med makroopptakeren deg alt du trenger å vite om riktig syntaks.

Excel VBA: Interiøreiendommen

Her er enda et eksempel på en egenskap som returnerer et objekt. Et Range-objekts Interiør-egenskap returnerer et Interiør-objekt (merkelig navn, men det er det det heter). Denne typen objektreferanse fungerer på samme måte som Font-egenskapen.

Følgende setning endrer for eksempel Color-egenskapen til Interiør-objektet i Range-objektet:

Range("A1"). Interiør.Farge = 8421504

Med andre ord endrer denne setningen cellens bakgrunn til mellomgrå. Hva er det? Du visste ikke at 8421504 er mellomgrå? For litt innsikt i Excels fantastiske verden av farger, se sidefeltet i nærheten "En rask og skitten fargegrunning."

Excel VBA: Formel-egenskapen

Formel-egenskapen representerer formelen i en celle. Dette er en lese-skrive-egenskap, slik at du kan få tilgang til den for å enten se formelen i en celle eller sette inn en formel i en celle. Følgende setning legger for eksempel inn en SUM-formel i celle A13:

Range("A13"). Formel = "=SUM(A1:A12)"

Legg merke til at formelen er en tekststreng og er omgitt av anførselstegn. Legg også merke til at formelen begynner med et likhetstegn, slik alle formler gjør.

Hvis selve formelen inneholder anførselstegn, blir ting litt vanskelig. Si at du vil sette inn denne formelen ved å bruke VBA:

=SUM(A1:A12)&" Butikker"

Denne formelen viser en verdi etterfulgt av ordet Stores . For å gjøre denne formelen akseptabel, må du erstatte hvert anførselstegn i formelen med to anførselstegn. Ellers blir VBA forvirret og hevder at det er en syntaksfeil (fordi det er det!). Så her er et utsagn som legger inn en formel som inneholder anførselstegn:

Range("A13").Formel = "=SUM(A1:A12)&"" Butikker"""

Forresten, du kan få tilgang til en celles Formel-egenskap selv om cellen ikke har en formel. Hvis en celle ikke har noen formel, returnerer Formula-egenskapen det samme som Value-egenskapen.

Hvis du trenger å vite om en celle har en formel, bruk HasFormula-egenskapen.

Vær oppmerksom på at VBA "snakker" amerikansk engelsk. Dette betyr at for å sette en formel i en celle, må du bruke den amerikanske syntaksen. Hvis du bruker en ikke-engelsk versjon av Excel, les deg opp på FormulaLocal-egenskapen i hjelpesystemet.

Excel VBA: NumberFormat-egenskapen

NumberFormat-egenskapen representerer tallformatet (uttrykt som en tekststreng) til Range-objektet. Dette er en lese-skrive-egenskap, så VBA-koden din kan enten undersøke tallformatet eller endre det. Følgende setning endrer tallformatet til kolonne A til en prosentandel med to desimaler:

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

Følg disse trinnene for å se en liste over andre tallformater (bedre ennå, slå på makroopptakeren mens du gjør dette):

Aktiver et regneark.

Trykk Ctrl+1 for å få tilgang til dialogboksen Formater celler.

Klikk på Nummer-fanen.

Velg kategorien Egendefinert for å vise og bruke noen ekstra tallformatstrenger.


Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows Microsoft Word åpner filer i skrivebeskyttet modus, noe som gjør det umulig å redigere dem? Ikke bekymre deg, metodene er nedenfor

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Slik fikser du feil ved utskrift av feil Microsoft Word-dokumenter Feil ved utskrift av Word-dokumenter med endrede fonter, rotete avsnitt, manglende tekst eller tapt innhold er ganske vanlig. Men ikke gjør det

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Hvis du har brukt pennen eller merkepennen til å tegne på PowerPoint-lysbildene dine under en presentasjon, kan du lagre tegningene til neste presentasjon eller slette dem, slik at du neste gang du viser dem starter med rene PowerPoint-lysbilder. Følg disse instruksjonene for å slette penn- og merkepenntegninger: Slette linje én på […]

Style Library-innhold i SharePoint 2010

Style Library-innhold i SharePoint 2010

Stilbiblioteket inneholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og bilder som brukes av forhåndsdefinerte mastersider, sideoppsett og kontroller i SharePoint 2010. For å finne CSS-filer i stilbiblioteket til et publiseringsnettsted: Velg Site Actions→ View Alt innhold på nettstedet. Innholdet på nettstedet vises. Style-biblioteket ligger i […]

Formater tall i tusenvis og millioner i Excel-rapporter

Formater tall i tusenvis og millioner i Excel-rapporter

Ikke overveld publikum med gigantiske tall. I Microsoft Excel kan du forbedre lesbarheten til dashbordene og rapportene dine ved å formatere tallene dine slik at de vises i tusenvis eller millioner.

Hvordan dele og følge SharePoint-nettsteder

Hvordan dele og følge SharePoint-nettsteder

Lær hvordan du bruker SharePoints sosiale nettverksverktøy som lar enkeltpersoner og grupper kommunisere, samarbeide, dele og koble til.

Hvordan konvertere datoer til julianske formater i Excel

Hvordan konvertere datoer til julianske formater i Excel

Julianske datoer brukes ofte i produksjonsmiljøer som et tidsstempel og hurtigreferanse for et batchnummer. Denne typen datokoding lar forhandlere, forbrukere og serviceagenter identifisere når et produkt ble laget, og dermed alderen på produktet. Julianske datoer brukes også i programmering, militæret og astronomi. Forskjellig […]

Hvordan lage en Access Web App

Hvordan lage en Access Web App

Du kan lage en nettapp i Access 2016. Så hva er en nettapp egentlig? Vel, nettet betyr at det er online, og appen er bare en forkortelse for "applikasjon". En Custom Web App er en online databaseapplikasjon som du får tilgang til fra skyen ved hjelp av en nettleser. Du bygger og vedlikeholder nettappen i skrivebordsversjonen […]

Hurtigstartlinje i SharePoint 2010

Hurtigstartlinje i SharePoint 2010

De fleste sidene i SharePoint 2010 viser en liste over navigasjonskoblinger på hurtigstartlinjen langs venstre side av siden. Hurtigstartlinjen viser koblinger til innhold på nettstedet som lister, biblioteker, nettsteder og publiseringssider. Hurtigstartlinjen inneholder to svært viktige lenker: Linken for alt nettstedinnhold: […]

Hva betyr løserfeilmeldingene i Excel?

Hva betyr løserfeilmeldingene i Excel?

For enkle problemer finner Solver i Excel vanligvis raskt de optimale Solver-variabelverdiene for objektivfunksjonen. Men i noen tilfeller har Solver problemer med å finne Solver-variabelverdiene som optimerer objektivfunksjonen. I disse tilfellene viser Solver vanligvis en melding eller en feilmelding som beskriver eller diskuterer problemet som […]