Страницы: 1
RSS
перенос текста по словам в зависимости от заданны параметров, перенос текста по словам в зависимости от заданны параметров
 
Здравствуйте, имеется задача, самостоятельно найти решение не смог хоть и нашел что то похожее но в vBA полный 0,

задача такова: в книге есть поле ввода данных (условно например место рождения)
эти данные необходимо будет разделить (при необходимости) на 2 (а может и более ячеек), в зависимости от заданного параметра количества символов (например 20)
по условию ячейки эти известны, иногда могут находиться на других листах
 
Дмитрий Иванов, здравствуйте
Определитесь, могут ли быть слова разорваны или находиться только целиком в ячейке
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
желательно конечно целиком, потому что предполагаю что расставлять переносы правильно будет намного проблематичнее
 
Цитата
написал:
Дмитрий Иванов, здравствуйте
Определитесь, могут ли быть слова разорваны или находиться только целиком в ячейке
только целиком
 
Дмитрий Иванов, см. файл
 
Цитата
написал:
Дмитрий Иванов, см. файл
ну во первых спасибо, не знаю как но оно работает, но если можно поясните в коде где менять максимальное количество символов?
и второе сейчас, если убрать пробел после усть-каменогорск,воронежской.... то он перенесет так усть-каменогорск,в и остальное на 2 строке, можно как нибудь сделать чтобы если нет пробела, то чтобы делил по запятой, а если нет запятой, то по точке, а если уж ничего нет, то уж как перенесет=))
 
Цитата
написал:
Дмитрий Иванов, см. файл
а нет, не так работает как я бы хотел, как я понял он ищет первую "," а мне необходимо, чтобы был именно сначала проверка по количеству символов, и если более (например 20) то искал с 20 до 1 символа первый пробел (справа) и с него переносил, потому что не всегда будет такое что вообще есть необходимость переноса например гор. ленинград) влезет целиком и делить нет смысла
 
Дмитрий Иванов, см. файл
 
Цитата
написал:
Дмитрий Иванов, см. файл
большое спасибо=))
 
Цитата
написал:
Дмитрий Иванов, см. файл
самостоятельно не смог подправить, чтобы добавить количество строк для деления, например в 1 ячейку должно влезть не более 25 символов, во вторую не более 45, в третью все остальное
 
вроде как часть переноса получилось сделать но во второй строке не удаляется часть текста, перенесенная на 3 строку

Sub SplitAddress()
   Dim sAddress As String
   Dim lCommaPos As Long
   Dim lSpacePos As Long
   Dim lThirdPos As Long
   With ActiveSheet
       sAddress = .Range("A3") ' получили значеие переменной адрес
       If Len(sAddress) > 25 Then 'если адрес длиннее 25 символов
           If Len(.Range("A3") > 0) Then 'если адрес длиннее 0
               'lCommaPos = InStr(1, sAddress, ",", vbBinaryCompare)
               lSpacePos = InStrRev(Left$(sAddress, 25), " ")
               If lSpacePos > 0 Then
                   .Range("M3").Value = Left(sAddress, lSpacePos)
                   sAddress = Mid(sAddress, lSpacePos + 1)
                       If Len(sAddress) > 55 Then
                           If Len(sAddress) > 0 Then
                               lThirdPos = InStrRev(Left$(sAddress, 55), " ")
                                   If lThirdPos > 0 Then
                                       .Range("I4").Value = Left(sAddress, lThirdPos)
                                       .Range("I5").Value = Mid(sAddress, lThirdPos + 1)
                                   
                           End If
                       End If
                       
                   End If
                   .Range("I4").Value = sAddress
               End If
           End If
       Else
           .Range("M3").Value = sAddress
       End If
   End With
End Sub
Страницы: 1
Наверх