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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2011, 13:13   #1
DJTreeno
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 146
По умолчанию VBA Перенос слов в ячейке (проблема связи Excel с Word)

Доброго всем времени суток!!!

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

Связь я делал через единственный адекватный формат - HTML

Пожалуйста помогите мне еще раз!!! Выход из этой ситуации я придумал (может есть другой, то подскажите). Получается что если в Excel переносить слова или слоги с сочетанием клавиш alt + Enter, то в Word вроде как все становится на свои места, то есть нужен макрос который бы шел по строкам (от 1 до 2000) в столбце A и сравнивал: если текст не помещается в ширину столбца, то перенести alt + Enter
DJTreeno вне форума Ответить с цитированием
Старый 20.06.2011, 14:11   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

нужен макрос который бы шел по строкам (от 1 до 2000) в столбце A и сравнивал: если текст не помещается в ширину столбца, то перенести alt + Enter

Попробуйте - макрос будет вставлять alt + Enter через каждые m символов, m равно ширине столбца в символах стандартного шрифта. Можете подкорректировать, например m = [A1].ColumnWidth * 0.8
Чтобы удалить символы alt + Enter из столбца, используйте Ctrl+H, найти: Ctrl+J
Код:
Sub DJTreeno()
Dim m&, c As Range, i&, s$, s1$
m = [A1].ColumnWidth
For Each c In [A1:A2000]
    If Len(c) > m Then
        s = c
        s1 = ""
        For i = 1 To Len(s) Step m
            s1 = s1 & vbLf & Mid$(s, i, m)
        Next
        c = Mid(s1, 2)
    End If
Next
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 20.06.2011, 14:16   #3
DJTreeno
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 146
По умолчанию

Спасибо, попробуем!!!!
DJTreeno вне форума Ответить с цитированием
Старый 20.06.2011, 14:21   #4
DJTreeno
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 146
По умолчанию

Работает!!!
DJTreeno вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос на изменение источника связи между Word и Excel Василий. Microsoft Office Word 16 24.11.2018 20:29
VBA Word,VBA Excel решить 2 задачи fafolo4ka Фриланс 6 05.03.2012 01:15
Связи между таблицами Excel и Word OMEN_6666 Microsoft Office Excel 1 26.11.2010 15:44
Связи excel c word Vladymyr17 Microsoft Office Excel 0 28.09.2009 15:52
Перенос данных из Excel в Word Volch Microsoft Office Excel 6 19.10.2008 20:36