Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2009, 17:30   #11
Sirius2w
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 22
По умолчанию

Можно еще вопрос? Местами все переносится отлично а местами как-то неправильно
Я сначала сам попытался разобраться - но не совсем все получилось.
я кое-что подправил в коде, при "полевых испытаниях " )) вот конечный результат:
Код:

Sub редактирование_исходника()

    Dim i As Long, j As Long, k As Long, a: Application.ScreenUpdating = False
    Application.DisplayAlerts = False: Sheets("Summary").Activate
    [A:L].Font.Name = "Arial": [A:L].Font.Size = 11.5
    [A:A].Replace What:=".", Replacement:=",", LookAt:=xlPart: [A:A].Copy [J1]
    [J:J].TextToColumns Destination:=[J1], DataType:=xlDelimited, Other:=True, _
        OtherChar:="-", FieldInfo:=Array(Array(1, 1), Array(2, 1))
    ActiveSheet.UsedRange.Sort Key1:=[J1], Order1:=xlAscending, Key2:=[K1], Order2:=xlAscending, Header:=xlYes
    [J:K].Delete: [B:B].ColumnWidth = 70: [C:C].ColumnWidth = 30.86: [E:E].ColumnWidth = 24.29
    On Error Resume Next
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If Split(Cells(i, 1), "-")(0) <> Split(Cells(i + 1, 1), "-")(0) Then Rows(i + 1).Insert
    Next
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        a = Split(Cells(i, 2), " ")
        If Len(Cells(i, 2)) > [B:B].ColumnWidth Then
            k = i: Cells(k, 2) = a(LBound(a))
            For j = LBound(a) + 1 To UBound(a)
                If Len(Cells(k, 2) & " " & a(j)) > [B:B].ColumnWidth Then
                    Cells(k, 2) = Cells(k, 2): k = k + 1: Rows(k).Insert: Cells(k, 2) = a(j)
                Else: Cells(k, 2) = Cells(k, 2) & " " & a(j)
    End If: Next: End If: Next
   
End Sub
некоторые строки, не разбились на отдельные ячейки, хотя часть одного слова или несколько слов (чаще всего 2) не вмещаются в изначальную ячейку
Sirius2w вне форума Ответить с цитированием
Старый 16.12.2009, 04:39   #12
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Прикрепите файл с примерами строк, среди которых будут и такие, которые обрабатываются не так, как Вам нужно. Разберемся.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 16.12.2009 в 06:13.
SAS888 вне форума Ответить с цитированием
Старый 16.12.2009, 07:57   #13
Sirius2w
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 22
По умолчанию

Вот вложение
Вложения
Тип файла: rar КЕПША 5.rar (20.5 Кб, 8 просмотров)
Sirius2w вне форума Ответить с цитированием
Старый 16.12.2009, 10:10   #14
Sirius2w
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 22
По умолчанию

Вы объясните пожалуйста как это сделать? что бы хоть разобраться... что бы если что я сам смог под себя адапировать этот макрос
просто я еще до конца не успел выяснить какая ширина столбцов будет в окончательном варианте. а щас получается - меняю в макросе ширину столбца а перенос происходит по старым пораметрам (по старому значению ширины столбца).
Спасибо.

Последний раз редактировалось Sirius2w; 16.12.2009 в 10:21.
Sirius2w вне форума Ответить с цитированием
Старый 17.12.2009, 07:20   #15
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Там скорректированный макрос с комментариями.
Обратите внимание, что запускать макрос 2 раза подряд нельзя, т.к. полученные после первой работы макроса данные будут испорчены. Это связано как раз с тем, что добавленные по Вашему требованию строки (вместо переноса по словам в той же ячейке) в столбце "A" будут иметь пустое значение. И, как следствие, при сортировке будут перемещены вниз таблицы.
Вложения
Тип файла: rar КЕПША 6.rar (16.5 Кб, 11 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.12.2009, 07:27   #16
Sirius2w
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 22
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Обратите внимание, что запускать макрос 2 раза подряд нельзя...
Да, я в курсе... это нормально...
щас посмотрю, спасибо!
Sirius2w вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос по словам в ListBox nikolai_P Microsoft Office Excel 2 25.01.2013 12:08
Перенос данных в нужные ячейки через VBA Detockin Microsoft Office Excel 0 12.03.2009 12:04
Перенос данніх в зависимости от цвета ячейки gavrylyuk Microsoft Office Excel 8 08.08.2008 19:11