Bu nedenle, bir metin bloğu alabilecek ve yalnızca satır başına en çok 50 karakter içerecek şekilde düzenleyen, ancak sözcükleri bir arada tutan bir program oluşturmaya çalışıyorum (bu şekilde değiştirme satır sonu karakteri için 50 karakter uzunluğunda bir metin satırındaki son boşluk ancak çıktı olarak bir değer hatası almaya devam ediyorum! İşte Excel VBA satır sonu kodunda değer hatası
bugüne kadar kodudur:Option Explicit
Public Function LnBrk50(selection) As String
Dim bookmark As Long
Dim step As Byte
Dim length As Byte
'finds the last instance number of a space character in the text block within 50 characters
length = 50 - Len(WorksheetFunction.Substitute(Left(selection, 50), " ", ""))
'replaces the last instance of a space character with a line break character
selection = WorksheetFunction.IfError(WorksheetFunction.Substitute(selection, " ", vbNewLine, length), selection)
'character number of the last line break in the text block
bookmark = WorksheetFunction.Find(vbNewLine, selection)
step = 0
Do Until step = 9
'finds the last instance number of a space character in the text block within the 50 characters after the last line break
length = 50 + bookmark - Len(WorksheetFunction.Substitute(Left(selection, 50 + bookmark), " ", ""))
'replaces the space character found in last line with a line break character
selection = WorksheetFunction.IfError(WorksheetFunction.Substitute(selection, " ", vbNewLine, length), selection)
'adds character number of the last line break
bookmark = WorksheetFunction.Find(vbNewLine, selection, bookmark + 1)
step = step + 1
Loop
End Function
kimse hangi hata Bunun # DEĞER üretecektir yapım olabilir bulabildiğim Yani eğer! tek bir başvurulan metin hücresinde kullanıldığında hata, çok takdir olurdu!
Çeşitli yorumlarınızı deneyebilirsiniz: çalışın VBA metin işleme işlevleri daha iyi çalıştığı zaman çalışma sayfası işlevlerini kullanmak için; Bir işlev kullanıyorsunuz ancak bir değer döndürmüyorsunuz; Çalışma sayfasından çağrılan bir işlev, çağrıldığı hücrede görüntülenen bir değer sağlamalıdır - diğer hücreleri değiştirmeyi denememelidir. – OldUgly
Ah, bkz. Programın kullandığım hücrede Do döngüsünün son çıktısını görüntüleyeceğini düşündüm. VBA'ya yeni olduğum için, fonksiyonu bir çıktıya eşit olarak ayarlamam gerektiğini görmedim. Geri bildiriminiz için teşekkür ederiz! – RDub549