Användbara intervallobjektegenskaper för Excel VBA som alla borde känna till

Ett Range-objekt har dussintals egenskaper. Du kan skriva VBA-program nonstop under de kommande 12 månaderna och aldrig använda dem alla. Här får du en kort översikt över några av de mest använda Excel VBA Range-egenskaperna. För fullständig information, se hjälpsystemet i VBE. (Kolla in dessa ytterligare resurser för hjälp med Excel VBA .)

Vissa Excel VBA Range-egenskaper är skrivskyddade egenskaper, vilket innebär att din kod kan titta på deras värden men inte ändra dem ("Titta, men rör inte"). Till exempel har varje Excel VBA Range-objekt en Address-egenskap, som innehåller intervallets adress. Du kan komma åt den här skrivskyddade egenskapen, men du kan inte ändra den - vilket är helt logiskt när du tänker på det.

Förresten, exemplen som följer är vanligtvis uttalanden snarare än fullständiga procedurer. Om du vill prova någon av dessa (och du borde), skapa en underordnad procedur för att göra det. Många av dessa VBA-satser fungerar bara korrekt om ett kalkylblad är det aktiva bladet.

Excel VBA: Egenskapen Value

Egenskapen Value representerar värdet som finns i en cell. Det är en läs-skriv-egenskap, så din VBA-kod kan antingen läsa eller ändra värdet.

Följande uttalande visar en meddelanderuta som visar värdet i cell A1 på Blad1:

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

Det är naturligt att du bara kan läsa egenskapen Value för ett encelligt Range-objekt. Till exempel genererar följande sats ett fel:

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

Du kan dock ändra egenskapen Value för ett intervall av valfri storlek. Följande påstående anger talet 123 i varje cell i ett intervall:

Arbetsblad("Sheet1").Range("A1:C3").Value = 123

Value är standardegenskapen för ett Excel VBA Range-objekt. Med andra ord, om du utelämnar en egenskap för ett intervall, använder Excel dess värde-egenskap. Följande satser anger båda värdet 75 i cell A1 i det aktiva kalkylbladet:

Range("A1"). Värde = 75
Område("A1") = 75

Excel VBA: Text-egenskapen

Egenskapen Text returnerar en sträng som representerar texten som den visas i en cell – det formaterade värdet. Egenskapen Text är skrivskyddad. Antag att cell A1 innehåller värdet 12,3 och är formaterad för att visa två decimaler och ett dollartecken ($12,30). Följande uttalande visar en meddelanderuta som innehåller $12,30:

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

Men nästa påstående visar en meddelanderuta som innehåller 12.3:

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

Om cellen innehåller en formel returnerar egenskapen Text resultatet av formeln. Om en cell innehåller text, returnerar egenskapen Text och egenskapen Value alltid samma sak, eftersom text (till skillnad från ett tal) inte kan formateras för att visas annorlunda.

Excel VBA: Egenskapen Count

Egenskapen Count returnerar antalet celler i ett intervall. Den räknar alla celler, inte bara de icke-tomma cellerna. Count är en skrivskyddad egenskap, precis som du kan förvänta dig. Följande sats får åtkomst till ett intervalls Count-egenskap och visar resultatet (9) i en meddelanderuta:

MsgBox Range("A1:C3").Count

Excel VBA: Kolumn- och radegenskaperna

Kolumnegenskapen returnerar kolumnnumret för ett encellsintervall. Dess sidekick, egenskapen Row, returnerar radnumret för ett encellsintervall. Båda är skrivskyddade egenskaper. Till exempel visar följande sats 6 eftersom cell F3 finns i den sjätte kolumnen:

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

Nästa uttryck visar 3 eftersom cell F3 är på tredje raden:

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

Om Excel VBA Range-objektet består av mer än en cell, returnerar egenskapen Column kolumnnumret för den första kolumnen i intervallet, och egenskapen Row returnerar radnumret för den första raden i intervallet.

Blanda inte ihop egenskaperna Kolumn och Rad med egenskaperna Kolumner och Rader. Egenskaperna Kolumn och Rad returnerar ett enda värde. Egenskaperna Kolumner och Rader, å andra sidan, returnerar ett Range-objekt. Vilken skillnad ett "s" gör.

Excel VBA: Adressegenskapen

Address, en skrivskyddad egenskap, visar celladressen för ett Range-objekt som en absolut referens (ett dollartecken före kolumnbokstaven och före radnumret). Följande uttalande visar meddelanderutan nedan:

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

Användbara intervallobjektegenskaper för Excel VBA som alla borde känna till

Den här meddelanderutan visar Address-egenskapen för ett 5-av-5-intervall.

Excel VBA: HasFormula-egenskapen

Egenskapen HasFormula (som är skrivskyddad) returnerar True om encellsintervallet innehåller en formel. Den returnerar False om cellen innehåller något annat än en formel (eller är tom). Om intervallet består av mer än en cell returnerar VBA True endast om alla celler i intervallet innehåller en formel eller False om alla celler i intervallet inte har en formel. Egenskapen returnerar Null om intervallet innehåller en blandning av formler och icke-formler. Null är ett slags ingenmansland: svaret är varken sant eller falskt, och vilken cell som helst i intervallet kan ha en formel eller inte.

Du måste vara försiktig när du arbetar med egenskaper som kan returnera Null. Mer specifikt är den enda datatypen som kan hantera Null Variant.

Anta till exempel att cell A1 innehåller ett värde och cell A2 innehåller en formel. Följande satser genererar ett fel eftersom intervallet inte består av alla formler eller alla icke-formler:

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

Den booleska datatypen kan endast hantera True eller False. Null gör att Excel klagar och visar ett felmeddelande. För att åtgärda denna typ av situation är det bästa du kan göra att se till att FormulaTest-variabeln deklareras som en variant snarare än som en boolesk. Följande exempel använder VBA:s praktiska TypeName-funktion (tillsammans med en If-Then-Else-konstruktion) för att bestämma datatypen för FormulaTest-variabeln. Om intervallet har en blandning av formler och icke-formler visar meddelanderutan Blandat! Annars visas True eller False .

Sub CheckForFormulas()
  Dim formelTest som variant
  FormulaTest = Range("A1:A2").HasFormula
  Om TypeName(FormulaTest) = "Null" Då
    MsgBox "Blandat!"
  Annan
    MsgBox FormulaTest
  Avsluta om
Avsluta Sub

Excel VBA: Egenskapen Font

En egenskap kan returnera ett objekt. Egenskapen Font för ett Excel VBA Range-objekt är ett annat exempel på det konceptet i arbete. Egenskapen Font returnerar ett Font-objekt.

Ett Font-objekt har, som du kan förvänta dig, många tillgängliga egenskaper. För att ändra någon aspekt av ett intervalls teckensnitt måste du först komma åt intervallets Font-objekt och sedan manipulera egenskaperna för det objektet. Detta kan vara förvirrande, men det här exemplet kanske hjälper.

Följande sats använder egenskapen Font för Range-objektet för att returnera ett Font-objekt. Då sätts egenskapen Bold för Font-objektet till True. På vanlig engelska gör detta uttalande att cellen visas i fetstil:

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

Sanningen är att du egentligen inte behöver veta att du arbetar med ett speciellt Font-objekt som finns i ett Excel VBA Range-objekt. Så länge du använder rätt syntax fungerar det bra. Att spela in dina handlingar med makroinspelaren berättar ofta allt du behöver veta om rätt syntax.

Excel VBA: Inredningsfastigheten

Här är ytterligare ett exempel på en egenskap som returnerar ett objekt. Ett Range-objekts Interior-egenskap returnerar ett Interior-objekt (konstigt namn, men det är så det heter). Den här typen av objektreferens fungerar på samma sätt som egenskapen Font.

Till exempel ändrar följande sats egenskapen Color för Interiör-objektet som finns i Range-objektet:

Range("A1"). Interiör. Färg = 8421504

Med andra ord ändrar detta uttalande cellens bakgrund till mellangrå. Vad är det? Du visste inte att 8421504 är mellangrå? För några insikter i Excels underbara färgvärld, se det närliggande sidofältet "En snabb och smutsig färgprimer."

Excel VBA: Formelegenskapen

Formelegenskapen representerar formeln i en cell. Detta är en läs-skriv-egenskap, så du kan komma åt den för att antingen se formeln i en cell eller infoga en formel i en cell. Till exempel anger följande sats en SUM-formel i cell A13:

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

Lägg märke till att formeln är en textsträng och är omgiven av citattecken. Lägg också märke till att formeln börjar med ett likhetstecken, som alla formler gör.

Om själva formeln innehåller citattecken blir det lite knepigt. Säg att du vill infoga den här formeln genom att använda VBA:

=SUMMA(A1:A12)&" Butiker"

Den här formeln visar ett värde följt av ordet Butiker . För att göra denna formel acceptabel måste du ersätta varje citattecken i formeln med två citattecken. Annars blir VBA förvirrad och hävdar att det finns ett syntaxfel (eftersom det finns!). Så här är ett påstående som anger en formel som innehåller citattecken:

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

Förresten, du kan komma åt en cells formelegenskap även om cellen inte har en formel. Om en cell inte har någon formel, returnerar Formula-egenskapen samma som dess Value-egenskap.

Om du behöver veta om en cell har en formel, använd egenskapen HasFormula.

Var medveten om att VBA "talar" amerikansk engelska. Det betyder att för att sätta en formel i en cell måste du använda den amerikanska syntaxen. Om du använder en icke-engelsk version av Excel, läs på egenskapen FormulaLocal i hjälpsystemet.

Excel VBA: Egenskapen NumberFormat

NumberFormat-egenskapen representerar nummerformatet (uttryckt som en textsträng) för Range-objektet. Detta är en läs-skriv-egenskap, så din VBA-kod kan antingen undersöka nummerformatet eller ändra det. Följande påstående ändrar talformatet för kolumn A till en procentsats med två decimaler:

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

Följ dessa steg för att se en lista över andra nummerformat (bättre än, slå på makroinspelaren medan du gör detta):

Aktivera ett kalkylblad.

Tryck på Ctrl+1 för att komma åt dialogrutan Formatera celler.

Klicka på fliken Nummer.

Välj kategorin Anpassad för att visa och tillämpa några ytterligare nummerformatsträngar.

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]