Microsoft Excel'de VBA kullanarak verileri özel sayı biçimleriyle biçimlendirin

Anonim

Bu yazımızda VBA kullanarak verilen veriyi istenilen özel sayı formatında formatlamak için bir makro oluşturacağız.

Bu örnek için ham veriler satış ekibi verilerinden oluşur. Ham veriler isim, ürün kimliği, ürün fiyatı, satılan miktar ve toplam satışları içerir.

Makroyu çalıştırmadan önce, P sütununda özel sayı biçimini ve Q sütununda özel sayı biçimini uygulamak istediğiniz sütun numarasını belirtmelisiniz.

“Biçimlendirme” makrosunu çalıştırmak için “Biçimlendir” düğmesine tıklayın.

Makro, verilen verinin formatını belirtilen özel sayı formatına göre değiştirecektir.

Mantıksal açıklama

Bu makro, P sütunundan sayı biçimlendirmesini seçer ve sayı biçimlendirmesini Q sütunundaki sütun numaralarıyla belirtilen sütunlara atar.

Bu makroda döngü için iki DO UNTIL Döngüsü kullandık. İlk olarak DO UNTIL Döngüsü, tüm sayı biçimleri sütunlara uygulanana kadar döngü yapmak için kullanılır. İkinci DO UNTIL Döngüsü, belirtilen ve virgülle (,) ayrılmış tüm farklı sütun numaralarını bulmak için kullanılır.

Kod açıklaması

strCol = Sol(txt, InStr(txt, ",") - 1)

Yukarıdaki kod, sütun numarasını virgülle (,) ayrılmış tüm sütun numaralarını içeren dizeden ayırmak için kullanılır.

Columns(CInt(strCol))).NumberFormat = wks.Cells(intRow, 16).Value

Yukarıdaki kod, belirtilen sütuna özel sayı biçimini uygulamak için kullanılır.

txt = Sağ(txt, Len(txt) - InStr(txt, ","))

Yukarıdaki kod, tanımlanan dizeden sütun numarası çıkarıldıktan sonra kalan dizeyi ayırmak için kullanılır.

Lütfen kod için aşağıdan takip edin

Seçenek Explicit Sub Formatting() 'Değişkenleri bildirme Dim wks As Worksheet Dim intRow As Long Dim strCol As String Dim txt As String 'Değişkenleri başlatma Set wks = Worksheets("Format") intRow = 4 'Boş değer olana kadar 16. sütunda döngü Bulundu IsEmpty'ye Kadar Yap(wks.Cells(intRow, 16)) 'Özel sayı biçiminin değerini atama txt = wks.Cells(intRow, 17) 'Virgülle(,) ayırarak tüm sütun numaralarını döndürme ve bulma InStr( txt, ",") = 0 'Sütun numarasını alma strCol = Left(txt, InStr(txt, ",") - 1) 'Sayı biçimini atama Columns(CInt(strCol))).NumberFormat = wks.Cells(intRow , 16).Value 'Virgülden sonraki sütun numarasını bulmak için dizgiyi budanıyor(,) txt = Right(txt, Len(txt) - InStr(txt, ",")) Döngü 'Sayı biçimini atama Columns(CInt (txt)).NumberFormat = wks.Cells(intRow, 16).Value intRow = intRow + 1 Döngü End Sub

Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.

Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın