Son bir görevde, bir sayı sütununda VBA üzerinden filtre yapıyordum. Ancak bu sayı sütununda metin biçiminde sayılar vardı. VBA betiğini çalıştırdığımda, elbette işe yaramadı, çünkü filtre bir sayıydı ve sütunda metin olarak sayılar vardı. Bu durumda, metni manuel olarak sayılara dönüştürmem ve kaydetmem gerekiyordu. Sonra makro mükemmel çalıştı. Ancak bu metinleri VBA betiğini kullanarak sayılara dönüştürmek istedim ve bunu başardım. VBA kullanarak metin değerlerini sayıya çevirmeyi öğrenmek isteyenler bakabilirmiş gibi bunu paylaşmak istedim.
Range.NumberFormat yöntemini kullanarak metni sayıya dönüştürün
Bu ilk ve en kolay yöntem. Bu yöntemi, seçilen excel aralığını doğrudan sayı biçimine dönüştürdüğü için diğer yöntemlere tercih ederim.
Bu nedenle, metne dönüştürmek istediğiniz sabit bir aralığınız varsa, bu VBA pasajını kullanın.
Sub ConvertTextToNumber() Range("A3:A8").NumberFormat = "General" Range("A3:A8").Value = Range("A3:A8").Value End Sub
Yukarıdaki kodu çalıştırdığınızda, A3:A8 aralığındaki metni metne dönüştürür.
Bu kodu şöyle yazarsak daha şık görünebilir.
Sub ConvertTextToNumber() ile Range("A3:A8") .NumberFormat = "Genel" .Value = .Value End With End Sub
O nasıl çalışır?
Bu oldukça basit. Önce aralığın sayı biçimini Genel olarak değiştiriyoruz. Sonra VBA kullanarak o aralığın değerini aynı aralığa koyuyoruz. Bu, metin biçimlendirmesini tamamen kaldırır. Basit, değil mi?
Dinamik aralığın biçimlendirme sayısını değiştirme
Yukarıdaki kodda, metni yukarıdaki kodda sabit bir aralıkta sayı olarak değiştirdik ancak çoğu zaman durum böyle olmayacak. Metni bir dizi dinamik aralığa dönüştürmek için son kullanılan hücreyi değerlendirebilir veya aralığı dinamik olarak seçebiliriz.
Bu nasıl görüneceği:
Sub ConvertTextToNumber() With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With
Burada aralığın A3'ten başladığını biliyorum. Ama nerede bitebileceğini bilmiyorum.
Bu yüzden, VBA snippet Cells(Rows.Count, 1).End(xlUp).Row kullanarak içinde veri bulunan son kullanılan excel satırını dinamik olarak tanımlarım. "A3:A" ile birleştirdiğimiz son kullanılan satır numarasını döndürür.
Not: Bu VBA parçacığı, etkin çalışma kitabı ve etkin çalışma sayfasında çalışacaktır. Kodunuz birden çok sayfa arasında geçiş yapıyorsa, amaçlanan çalışma sayfasının bir aralık nesnesini ayarlamak daha iyi olur. Bunun gibi
Sub ConvertTextToNumber() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) Rng ile .NumberFormat = "General" .Value = .Value End Sub ile End
Yukarıdaki kod, metni her zaman bu kodu içeren çalışma kitabının sayfa1 numarasıyla değiştirecektir.
Metni sayıya değiştirmek için döngü ve CSng
Başka bir yöntem, her hücre arasında döngü yapmak ve CSng işlevini kullanarak hücre değerini bir sayıya değiştirmektir. İşte kod.
Sub ConvertTextToNumberLoop() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) Rng.Cells içindeki her hücre için cel.Value = CSng(cel.Value) Sonraki hücre End Sub
Yukarıdaki VBA snippet'inde, aralıktaki her hücre üzerinde yineleme yapmak ve VBA'nın CSng işlevini kullanarak her hücrenin değerini bir sayıya dönüştürmek için VBA For döngüsünü kullanıyoruz.
Evet arkadaşlar, VBA kullanarak Excel'deki metinleri sayılara bu şekilde değiştirebilirsiniz. Bu parçacıkları, üzerinde herhangi bir sayı işlemi yapmadan önce çalışma sayfanızı hazırlamak için kullanabilirsiniz. Umarım yeterince açıklayıcı olabilmişimdir. Çalışma dosyasını buradan indirebilirsiniz.
VBA Kullanarak Metni Numaraya Değiştirin.
Bu metinden sayıya dönüştürme veya başka bir excel/VBA ile ilgili sorgu hakkında herhangi bir şüpheniz varsa, aşağıdaki yorumlar bölümünde sorun.
Microsoft Excel'de VBA aracılığıyla Metin ve Sayı Tersine Nasıl Alınır | Sayı ve metni tersine çevirmek için VBA'da döngüler ve orta işlev kullanıyoruz. 1234, 4321'e, "siz", "uoy"'a dönüştürülecek. İşte fragman.
Microsoft Excel'de VBA kullanarak verileri özel sayı biçimleriyle biçimlendirin | Excel'deki belirli sütunların sayı biçimini değiştirmek için bu VBA pasajını kullanın. Belirtilen sayı biçimini tek tıklamayla belirtilen biçime dönüştürür.
Popüler Makaleler:
Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.
Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.
Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli bir değeri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.
Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.