Změňte text na číslo pomocí VBA

Obsah:

Anonim

V nedávném úkolu jsem dělal filtr přes VBA na sloupci čísel. Ale tento sloupec čísel obsahoval čísla v textovém formátu. Když spustím skript VBA, samozřejmě to nefungovalo, protože filtr byl číslo a sloupec měl čísla jako text. V takovém případě jsem potřeboval text převést na čísla ručně a uložit ho. Poté makro fungovalo perfektně. Chtěl jsem ale tyto texty převést na čísla pomocí skriptu VBA a podařilo se mi to. Chtěl jsem to sdílet, jako kdyby někdo chtěl vědět, jak převést textové hodnoty na číslo pomocí VBA, může se na to podívat.

Převod textu na číslo pomocí Range.NumberFormat metody

Tato první a nejjednodušší metoda. Dávám přednost této metodě před jinými metodami, protože přímo převádí vybraný rozsah aplikace Excel do formátu čísel.

Pokud tedy máte pevný rozsah, který chcete převést na text, použijte tento úryvek VBA.

Sub ConvertTextToNumber () Range ("A3: A8"). NumberFormat = "General" Range ("A3: A8"). Value = Range ("A3: A8"). Value End Sub 

Když spustíte výše uvedený kód, převede text rozsahu A3: A8 na text.

Tento kód může vypadat elegantněji, pokud jej napíšeme takto.

Sub ConvertTextToNumber () s rozsahem ("A3: A8") .NumberFormat = "General" .Value = .Value Konec s End Sub 

Jak to funguje?

No, je to docela jednoduché. Nejprve změníme formát čísel rozsahu na Obecné. Poté vložíme hodnotu tohoto rozsahu do stejného rozsahu pomocí VBA. Tím se úplně odstraní formátování textu. Jednoduché, že?

Změňte počet formátování dynamického rozsahu

Ve výše uvedeném kódu jsme změnili text na číslo ve výše uvedeném kódu pevného rozsahu, ale většinou tomu tak nebude. Chcete -li převést text na řadu dynamických rozsahů, můžeme vyhodnotit poslední použitou buňku nebo rozsah vybrat dynamicky.

Takto by to vypadalo:

Sub ConvertTextToNumber () s rozsahem ("A3: A" & buňky (Rows.Count, 1) .End (xlUp) .Row) .NumberFormat = "General" .Value = .Value Konec na 

Tady vím, že rozsah začíná od A3. Ale nevím, kde to může skončit.
Takže dynamicky identifikuji poslední použitý řádek aplikace Excel, který obsahuje data, pomocí buněk VBA snippet Cells (Rows.Count, 1) .End (xlUp) .Row. Vrátí číslo posledního použitého řádku, které spojujeme s „A3: A“.

Poznámka: Tento úryvek VBA bude fungovat na aktivním sešitu a aktivním listu. Pokud se váš kód přepíná přes více listů, bylo by lepší nastavit objekt rozsahu zamýšleného listu. Takhle

Sub ConvertTextToNumber () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1) .End (xlUp) .Row) With Rng .NumberFormat = "General" .Value = .Hodnota Konec Koncem Sub 

Výše uvedený kód vždy změní text na číslo listu1 sešitu, který obsahuje tento kód.

Smyčkou a CSng změňte text na číslo

Další metodou je procházet každou buňku a pomocí funkce CSng změnit hodnotu buňky na číslo. Tady je kód.

Sub ConvertTextToNumberLoop () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1) .End (xlUp) .Row) For each cel In Rng.Cells cel.Value = CSng (cel.Value) Další cel End Sub 

Ve výše uvedeném úryvku VBA používáme smyčku VBA For k iteraci každé buňky v rozsahu a převedení hodnoty každé buňky na číslo pomocí funkce CSng VBA.

Takže jo, lidi, takto můžete v aplikaci Excel pomocí VBA měnit texty na čísla. Tyto úryvky můžete použít k přípravě listu před provedením jakékoli číselné operace. Doufám, že jsem to vysvětlil dostatečně. Pracovní soubor si můžete stáhnout zde.

Změňte text na číslo pomocí VBA.

Máte -li jakékoli pochybnosti týkající se převodu tohoto textu na číslo nebo jiného dotazu souvisejícího s aplikací Excel/VBA, zeptejte se níže v sekci komentáře.

Jak získat text a číslo obráceně prostřednictvím VBA v aplikaci Microsoft Excel | K obrácení čísla a textu používáme ve VBA smyčky a střední funkci. 1234 bude převedeno na 4321, „vy“ bude převedeno na „uoy“. Tady je úryvek.

Formátujte data pomocí vlastních formátů čísel pomocí VBA v aplikaci Microsoft Excel | Chcete -li změnit formát čísel konkrétních sloupců v aplikaci Excel, použijte tento úryvek VBA. Jedním kliknutím překrývá formát čísla ze zadaného do zadaného formátu.

Oblíbené články:

50 zkratek aplikace Excel pro zvýšení produktivity | Získejte rychleji svůj úkol. Těchto 50 klávesových zkratek vám umožní pracovat v Excelu ještě rychleji.

Funkce VLOOKUP v Excelu | Toto je jedna z nejpoužívanějších a nejoblíbenějších funkcí Excelu, která slouží k vyhledávání hodnot z různých rozsahů a listů.

COUNTIF v aplikaci Excel 2016 | Pomocí této úžasné funkce spočítejte hodnoty s podmínkami. K počítání konkrétní hodnoty nepotřebujete filtrovat data. Funkce Countif je nezbytná pro přípravu řídicího panelu.

Jak používat funkci SUMIF v aplikaci Excel | Toto je další základní funkce řídicího panelu. To vám pomůže shrnout hodnoty za konkrétních podmínek.