In een recente taak deed ik filteren via VBA op een nummerkolom. Maar die getallenkolom had getallen in tekstformaat. Toen ik het VBA-script uitvoerde, werkte het natuurlijk niet, omdat het filter een getal was en de kolom getallen als tekst had. In dat geval moest ik de tekst handmatig in cijfers omzetten en opslaan. Toen werkte de macro perfect. Maar ik wilde deze teksten omzetten in getallen met behulp van het VBA-script en het is me gelukt. Ik wilde dit delen alsof iemand wil weten hoe tekstwaarden in een getal kunnen worden omgezet met VBA, ze het kunnen bekijken.
Converteer tekst naar getal met de methode Range.NumberFormat
Deze eerste en gemakkelijkste methode. Ik geef de voorkeur aan deze methode boven andere methoden, omdat het het geselecteerde Excel-bereik direct omzet in getalnotatie.
Dus als je een vast bereik hebt dat je naar tekst wilt converteren, gebruik dan dit VBA-fragment.
Sub ConvertTextToNumber() Range("A3:A8").NumberFormat = "General" Range("A3:A8").Value = Range("A3:A8").Value End Sub
Wanneer u de bovenstaande code uitvoert, wordt de tekst van het bereik A3:A8 omgezet in tekst.
Deze code kan er eleganter uitzien als we hem zo schrijven.
Sub ConvertTextToNumber() With Range("A3:A8") .NumberFormat = "General" .Value = .Value End With End Sub
Hoe werkt het?
Nou, het is heel eenvoudig. We wijzigen eerst de getalnotatie van het bereik in Algemeen. Vervolgens plaatsen we de waarde van dat bereik in hetzelfde bereik met behulp van VBA. Hiermee wordt de tekstopmaak volledig verwijderd. Simpel, niet?
Het aantal opmaak van een dynamisch bereik wijzigen
In de bovenstaande code hebben we de tekst gewijzigd in nummer in de bovenstaande code van een vast bereik, maar dit zal meestal niet het geval zijn. Om tekst naar een aantal dynamische bereiken te converteren, kunnen we de laatst gebruikte cel evalueren of het bereik dynamisch selecteren.
Dit is hoe het eruit zou zien:
Sub ConvertTextToNumber() With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With
Hier weet ik dat het bereik begint vanaf A3. Maar ik weet niet waar het kan eindigen.
Dus ik identificeer dynamisch de laatst gebruikte Excel-rij die gegevens bevat met behulp van het VBA-fragment Cells(Rows.Count, 1).End(xlUp).Row. Het retourneert het laatst gebruikte rijnummer dat we aaneenschakelen met "A3:A".
Opmerking: Dit VBA-fragment werkt op de actieve werkmap en het actieve werkblad. Als uw code door meerdere bladen schakelt, is het beter om een bereikobject van het beoogde werkblad in te stellen. Zoals dit
Sub ConvertTextToNumber() Set Rng = ThisWorkbook.Sheets("Blad1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) With Rng .NumberFormat = "General" .Value = .Waarde Einde Met Einde Sub
De bovenstaande code zal de tekst altijd veranderen in het nummer van het blad1 van de werkmap die deze code bevat.
Loop en CSng om de tekst in nummer te veranderen
Een andere methode is om door elke cel te bladeren en de celwaarde te wijzigen in een getal met behulp van de CSng-functie. Hier is de code.
Sub ConvertTextToNumberLoop() Set Rng = ThisWorkbook.Sheets("Blad1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) Voor elke cel In Rng.Cells cel.Value = CSng(cel.Waarde) Volgende cel Einde Sub
In het bovenstaande VBA-fragment gebruiken we VBA For-lus om elke cel in het bereik te herhalen en de waarde van elke cel om te zetten in een getal met behulp van de CSng-functie van VBA.
Dus ja jongens, dit is hoe je met VBA teksten in getallen in Excel kunt veranderen. U kunt deze fragmenten gebruiken om uw werkblad klaar te maken voordat u er een nummerbewerking op uitvoert. Ik hoop dat ik voldoende uitleg heb gegeven. U kunt het werkbestand hier downloaden.
Verander tekst in nummer met VBA.
Als je twijfels hebt over deze conversie van tekst naar nummer of een andere Excel/VBA-gerelateerde vraag, vraag het dan in de opmerkingen hieronder.
Hoe tekst en nummer omgekeerd te krijgen via VBA in Microsoft Excel | Om nummer en tekst om te keren gebruiken we loops en mid-functie in VBA. 1234 wordt omgezet in 4321, "jij" wordt omgezet in "uoy". Hier is het fragment.
Gegevens opmaken met aangepaste getalnotaties met VBA in Microsoft Excel | Gebruik dit VBA-fragment om de getalnotatie van specifieke kolommen in Excel te wijzigen. Het verbergt het getalformaat van gespecificeerd naar gespecificeerd formaat in één klik.
Populaire artikels:
50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werk je nog sneller in Excel.
De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.
AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om een specifieke waarde te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.
Hoe de SUMIF-functie in Excel te gebruiken? | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden voor specifieke voorwaarden.