Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как узнать, на каком символе будет обрезаться строка? - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как узнать, на каком символе будет обрезаться строка? (Макросы/Sub)
Как узнать, на каком символе будет обрезаться строка?
Shu Дата: Среда, 16.12.2015, 16:22 | Сообщение № 1
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Всем добрый день.

Помогите разобраться с такой проблемой.
Под адрес, например, отведены две объединенные ячейки разной ширины. Из Word вставляю длинное для первой ячейки название.
Как узнать не зрительно, на каком символе в первой ячейке обрежется строка, чтобы в дальнейшем после небольших манипуляций со строкой второй ее частью заполнить вторую ячейку. Шрифт не должен изменяться.

Заранее Спасибо.
 
Ответить
СообщениеВсем добрый день.

Помогите разобраться с такой проблемой.
Под адрес, например, отведены две объединенные ячейки разной ширины. Из Word вставляю длинное для первой ячейки название.
Как узнать не зрительно, на каком символе в первой ячейке обрежется строка, чтобы в дальнейшем после небольших манипуляций со строкой второй ее частью заполнить вторую ячейку. Шрифт не должен изменяться.

Заранее Спасибо.

Автор - Shu
Дата добавления - 16.12.2015 в 16:22
abtextime Дата: Среда, 16.12.2015, 17:35 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Резать вручную? Ну-ну ... Продумайте алгоритм наложения сплита, всё можно запрограммировать

Или я Вас неправильно понял?
 
Ответить
СообщениеРезать вручную? Ну-ну ... Продумайте алгоритм наложения сплита, всё можно запрограммировать

Или я Вас неправильно понял?

Автор - abtextime
Дата добавления - 16.12.2015 в 17:35
Shu Дата: Среда, 16.12.2015, 18:16 | Сообщение № 3
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Резать вручную?

В сообщении вроде-бы описал проблему полностью - если не зрительно, то значит программно.
Не пойму, а как тут может помочь Split?
 
Ответить
Сообщение
Резать вручную?

В сообщении вроде-бы описал проблему полностью - если не зрительно, то значит программно.
Не пойму, а как тут может помочь Split?

Автор - Shu
Дата добавления - 16.12.2015 в 18:16
Kuzmich Дата: Среда, 16.12.2015, 19:27 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
а как тут может помочь Split?

Разбить предложение на слова и проверять длину слова, входит ли в первую ячейку,
присоединить следующее слово и опять проверить, входит ли в ячейку, и т.д.
Но только при моноширинном шрифте так можно сравнивать
 
Ответить
Сообщение
Цитата
а как тут может помочь Split?

Разбить предложение на слова и проверять длину слова, входит ли в первую ячейку,
присоединить следующее слово и опять проверить, входит ли в ячейку, и т.д.
Но только при моноширинном шрифте так можно сравнивать

Автор - Kuzmich
Дата добавления - 16.12.2015 в 19:27
Shu Дата: Среда, 16.12.2015, 19:47 | Сообщение № 5
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Разбить предложение на слова и проверять длину слова, входит ли в первую ячейку,
присоединить следующее слово и опять проверить, входит ли в ячейку, и т.д.
Но только при моноширинном шрифте так можно сравнивать

1.Шрифт ttf
2.Объясните мне, что значит
проверить, входит ли в ячейку,
 
Ответить
Сообщение
Разбить предложение на слова и проверять длину слова, входит ли в первую ячейку,
присоединить следующее слово и опять проверить, входит ли в ячейку, и т.д.
Но только при моноширинном шрифте так можно сравнивать

1.Шрифт ttf
2.Объясните мне, что значит
проверить, входит ли в ячейку,

Автор - Shu
Дата добавления - 16.12.2015 в 19:47
abtextime Дата: Среда, 16.12.2015, 19:47 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Здесь под сплитом понималась не функция Split, а операция в логичесом смысле(разделение на две строки)
 
Ответить
СообщениеЗдесь под сплитом понималась не функция Split, а операция в логичесом смысле(разделение на две строки)

Автор - abtextime
Дата добавления - 16.12.2015 в 19:47
Shu Дата: Среда, 16.12.2015, 20:03 | Сообщение № 7
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Чувствую, без API здесь не обойтись.
В MSDN нашел такую функцию:
[vba]
Код
BOOL GetTextExtentPoint32 (
   _In_ HDC HDC,
   _In_ LPCTSTR lpString,
   _In_ INT C,
   _Out_ LPSIZE lpSize
);
[/vba]
Кто силен в API, подскажите, в правильном направлении копаю?
 
Ответить
СообщениеЧувствую, без API здесь не обойтись.
В MSDN нашел такую функцию:
[vba]
Код
BOOL GetTextExtentPoint32 (
   _In_ HDC HDC,
   _In_ LPCTSTR lpString,
   _In_ INT C,
   _Out_ LPSIZE lpSize
);
[/vba]
Кто силен в API, подскажите, в правильном направлении копаю?

Автор - Shu
Дата добавления - 16.12.2015 в 20:03
Kuzmich Дата: Среда, 16.12.2015, 20:08 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Моноширинный шрифт - Courier New
Посмотрите, сколько символов этого шрифта умещается в вашу первую ячейку.
С этим числом и сравнивайте первое слово (Len), затем первое + пробел + второе слово, и т.д.
 
Ответить
СообщениеМоноширинный шрифт - Courier New
Посмотрите, сколько символов этого шрифта умещается в вашу первую ячейку.
С этим числом и сравнивайте первое слово (Len), затем первое + пробел + второе слово, и т.д.

Автор - Kuzmich
Дата добавления - 16.12.2015 в 20:08
Shu Дата: Среда, 16.12.2015, 20:14 | Сообщение № 9
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Моноширинный шрифт - Courier New
Посмотрите, сколько символов этого шрифта умещается в вашу первую ячейку.
С этим числом и сравнивайте первое слово (Len), затем первое + пробел + второе слово, и т.д.

В документе используются только ttf-шрифты.
 
Ответить
Сообщение
Моноширинный шрифт - Courier New
Посмотрите, сколько символов этого шрифта умещается в вашу первую ячейку.
С этим числом и сравнивайте первое слово (Len), затем первое + пробел + второе слово, и т.д.

В документе используются только ttf-шрифты.

Автор - Shu
Дата добавления - 16.12.2015 в 20:14
Kuzmich Дата: Среда, 16.12.2015, 20:42 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
У каждого шрифта разная ширина символов.
Если для Courier New в определенную ячейку входит 35 символов ш,
то для Arial Cyr только 25 символов.
И как тут считать, сколько знаков войдет в ячейку?
Вам ведь , наверное, нужно чтобы в ячейку вмещались слова целиком?
Тогда выберите какое-либо усредненное значение количества знаков в ячейке
для используемого шрифта и с ним сравнивайте.
 
Ответить
СообщениеУ каждого шрифта разная ширина символов.
Если для Courier New в определенную ячейку входит 35 символов ш,
то для Arial Cyr только 25 символов.
И как тут считать, сколько знаков войдет в ячейку?
Вам ведь , наверное, нужно чтобы в ячейку вмещались слова целиком?
Тогда выберите какое-либо усредненное значение количества знаков в ячейке
для используемого шрифта и с ним сравнивайте.

Автор - Kuzmich
Дата добавления - 16.12.2015 в 20:42
Shu Дата: Среда, 16.12.2015, 21:15 | Сообщение № 11
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Тогда выберите какое-либо усредненное значение количества знаков в ячейке
для используемого шрифта и с ним сравнивайте.

Статистике я не доверяю и использовать какое-то среднее значение я не хочу. Мне бы что-нибудь поточнее %)
 
Ответить
Сообщение
Тогда выберите какое-либо усредненное значение количества знаков в ячейке
для используемого шрифта и с ним сравнивайте.

Статистике я не доверяю и использовать какое-то среднее значение я не хочу. Мне бы что-нибудь поточнее %)

Автор - Shu
Дата добавления - 16.12.2015 в 21:15
Gustav Дата: Четверг, 17.12.2015, 18:59 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2747
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Предлагаю решение, основанное на автоматическом подгоне ширины колонки под текстовое содержимое при помощи Range.AutoFit. "Испытания" строки проводятся в новой невидимой рабочей книге, создаваемой по случаю в текущем экземпляре Excel.Application.

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

Поиграться можно в прилагаемом файле.


На рабочем листе данная функция, к сожалению, использоваться не может, так как содержит операторы, изменяющие данные на рабочем листе, пусть и в другой рабочей книге.
К сообщению приложен файл: Autofit.xlsm (23.7 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПредлагаю решение, основанное на автоматическом подгоне ширины колонки под текстовое содержимое при помощи Range.AutoFit. "Испытания" строки проводятся в новой невидимой рабочей книге, создаваемой по случаю в текущем экземпляре Excel.Application.

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

Поиграться можно в прилагаемом файле.


На рабочем листе данная функция, к сожалению, использоваться не может, так как содержит операторы, изменяющие данные на рабочем листе, пусть и в другой рабочей книге.

Автор - Gustav
Дата добавления - 17.12.2015 в 18:59
Shu Дата: Четверг, 17.12.2015, 21:11 | Сообщение № 13
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Цитата удалена

Уважаемый Gustav и все остальные. Но прошу вас, не предлагать всякие и среднестатистические подгонки. Прошу вас прочитать внимательно мой пост - чего я хочу добиться.

Хочу точного решения. :deal:

Задача нетривиальная, согласитесь со мной.
Вообще-то я уже за два дня разрешил свою проблему - готов уже примерный файл, выложу дня через два, - но , к моему сожалению, это уже не VBA, а сплошной С.
[moder]Не надо цитировать пост целиком. Это нарушение Правил форума[/moder]


Сообщение отредактировал Pelena - Четверг, 17.12.2015, 21:28
 
Ответить
СообщениеЦитата удалена

Уважаемый Gustav и все остальные. Но прошу вас, не предлагать всякие и среднестатистические подгонки. Прошу вас прочитать внимательно мой пост - чего я хочу добиться.

Хочу точного решения. :deal:

Задача нетривиальная, согласитесь со мной.
Вообще-то я уже за два дня разрешил свою проблему - готов уже примерный файл, выложу дня через два, - но , к моему сожалению, это уже не VBA, а сплошной С.
[moder]Не надо цитировать пост целиком. Это нарушение Правил форума[/moder]

Автор - Shu
Дата добавления - 17.12.2015 в 21:11
Shu Дата: Четверг, 17.12.2015, 21:57 | Сообщение № 14
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Модератор!
Напомните мне, а где нельзя цитировать пост целиком (укажите ссылку в правилах форума).
[moder]п. 5j[/moder]


Сообщение отредактировал Pelena - Четверг, 17.12.2015, 22:00
 
Ответить
СообщениеМодератор!
Напомните мне, а где нельзя цитировать пост целиком (укажите ссылку в правилах форума).
[moder]п. 5j[/moder]

Автор - Shu
Дата добавления - 17.12.2015 в 21:57
Wasilich Дата: Четверг, 17.12.2015, 22:07 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Shu, Если не трудно, выложите файлик с этими объединенными ячейками, длинным предложением, его шрифтом, как есть, и как вы хотите чтобы было.
Хочу поупражняться. Не может быть, чтоб это не решалось в ВБА.
Чисто ради интереса. :)
 
Ответить
СообщениеShu, Если не трудно, выложите файлик с этими объединенными ячейками, длинным предложением, его шрифтом, как есть, и как вы хотите чтобы было.
Хочу поупражняться. Не может быть, чтоб это не решалось в ВБА.
Чисто ради интереса. :)

Автор - Wasilich
Дата добавления - 17.12.2015 в 22:07
Shu Дата: Четверг, 17.12.2015, 22:22 | Сообщение № 16
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
п.5j - излишнее цитирование (цитирование поста целиком, например);

Вы сами себе противоречите - излишнее цитирование (цитирование поста целиком, например).
А если я процитировал пост целиком - что тут преступного или противозаконного? Что тут, Gb не хватает или амбиции модератора?

Вы что там чиновники?, может по моей теме что-нибудь ответите или дадите какие-нибудь рекомендации?
 
Ответить
Сообщениеп.5j - излишнее цитирование (цитирование поста целиком, например);

Вы сами себе противоречите - излишнее цитирование (цитирование поста целиком, например).
А если я процитировал пост целиком - что тут преступного или противозаконного? Что тут, Gb не хватает или амбиции модератора?

Вы что там чиновники?, может по моей теме что-нибудь ответите или дадите какие-нибудь рекомендации?

Автор - Shu
Дата добавления - 17.12.2015 в 22:22
RAN Дата: Четверг, 17.12.2015, 22:25 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
дадите какие-нибудь рекомендации

"В чужой монастырь со своим уставом не ходят"


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
дадите какие-нибудь рекомендации

"В чужой монастырь со своим уставом не ходят"

Автор - RAN
Дата добавления - 17.12.2015 в 22:25
Wasilich Дата: Четверг, 17.12.2015, 22:26 | Сообщение № 18
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Shu, без эмоций!!! Низзя ну и низзя. Мою просьбу исполните?
 
Ответить
СообщениеShu, без эмоций!!! Низзя ну и низзя. Мою просьбу исполните?

Автор - Wasilich
Дата добавления - 17.12.2015 в 22:26
Shu Дата: Четверг, 17.12.2015, 22:50 | Сообщение № 19
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Shu, Если не трудно, выложите файлик с этими объединенными ячейками, длинным предложением, его шрифтом, как есть, и как вы хотите чтобы было.
Хочу поупражняться. Не может быть, чтоб это не решалось в ВБА.
Чисто ради интереса.

Shu, Если не трудно, выложите файлик с этими объединенными ячейками, длинным предложением, его шрифтом, как есть, и как вы хотите чтобы было.
Хочу поупражняться. Не может быть, чтоб это не решалось в ВБА.
Чисто ради интереса.

Уважаемый Wasilic.
Я уже согласен, что я - Марсианен, ну почитай мой пост, что Вам для исходных данных не хватает?
[moder]А марсиане все такие чуткие и отзывчивые?


Сообщение отредактировал _Boroda_ - Четверг, 17.12.2015, 22:52
 
Ответить
Сообщение
Shu, Если не трудно, выложите файлик с этими объединенными ячейками, длинным предложением, его шрифтом, как есть, и как вы хотите чтобы было.
Хочу поупражняться. Не может быть, чтоб это не решалось в ВБА.
Чисто ради интереса.

Shu, Если не трудно, выложите файлик с этими объединенными ячейками, длинным предложением, его шрифтом, как есть, и как вы хотите чтобы было.
Хочу поупражняться. Не может быть, чтоб это не решалось в ВБА.
Чисто ради интереса.

Уважаемый Wasilic.
Я уже согласен, что я - Марсианен, ну почитай мой пост, что Вам для исходных данных не хватает?
[moder]А марсиане все такие чуткие и отзывчивые?

Автор - Shu
Дата добавления - 17.12.2015 в 22:50
Shu Дата: Четверг, 17.12.2015, 22:55 | Сообщение № 20
Группа: Заблокированные
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
"В чужой монастырь со своим уставом не ходят"

Послушай, кто ты там за котом стоишь, может тоже дашь рекомендации или пример?
 
Ответить
Сообщение
"В чужой монастырь со своим уставом не ходят"

Послушай, кто ты там за котом стоишь, может тоже дашь рекомендации или пример?

Автор - Shu
Дата добавления - 17.12.2015 в 22:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как узнать, на каком символе будет обрезаться строка? (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!