Bu yazıda, bir hücredeki metni dikey olarak sütuna sınırlamak için bir makro oluşturacağız. Sınırlayıcıya göre hücredeki metni sınırlayabiliriz. Sınırlayıcı virgül, boşluk, ters eğik çizgi vb. olabilir.
Makronun çalışmasını açıklamak için A10 hücresinde örnek metin olarak URL'yi aldık. “Gönder” butonu tıklanarak makro çalıştırılabilir.
Makroyu çalıştırdıktan sonra, bir sonraki sütunda çıktıyı döndürür. Hücredeki metin değeri, ikinci sütundaki birden çok hücrede birden çok alt dizeye ayrılır.
Mantıksal açıklama
İki görevi yerine getiren bir “texttocolumns” makrosu oluşturduk. İlk olarak, sınırlayıcıya bağlı olarak A10'daki dizeyi birden çok alt dizeye sınırlar. Bu örnekte, sınırlayıcı olarak tire (-) kullandık. İkinci olarak, birden çok sütundan oluşturulan alt dizeleri tek bir sütuna aktarır.
Kod açıklaması
Rng.texttocolumns Hedef:=Rng.Offset(0, 1), DataType:=xlSınırlı, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _
:="-"
Yukarıdaki kod, "Rng" aralığında dizeyi sınırlamak için kullanılır. Hedef, çıktının görüneceği konum aralığını belirtir. DataType, kullanılan sınırlayıcının türünü belirtir. TextQualifier, metin niteleyicisi için kullanılan karakteri belirtir. OtherChar, sınırlayıcı olarak kullanılan karakteri belirtir.
Lütfen kod için aşağıdan takip edin
Sub texttocolumns() 'Değişkenleri bildirme Dim StartRow, i, LastCol As Long Dim Rng As Range 'görüntüleme uyarılarını devre dışı bırakma Application.DisplayAlerts = False 'StartRow değişkenini başlatma = 10 Set Rng = Range("A10") 'metne dayalı olarak ayırma sınırlayıcı üzerinde Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _ :="-" 'Sütunu bulma Sınırlandırıldıktan sonra son dizeyi içeren hücre sayısı LastCol = Rng.End(xlToRight).Column 'metni sütunlarda satırlara yerleştirme For i = 2 To LastCol Cells(10, i).Cut Cells(StartRow, 2) StartRow = StartRow + 1 Sonraki i 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