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

Вход

Регистрация

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

 

= Мир MS Excel/Подстановка чисел Excel-Word (разделители разрядов) - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Word » Подстановка чисел Excel-Word (разделители разрядов) (Функции/Function)
Подстановка чисел Excel-Word (разделители разрядов)
Невилл Дата: Пятница, 15.07.2016, 11:22 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 2 ±
Замечаний: 0% ±

Excel 2007
Ребята, нужен совет со стороны. :'(

В общем, по работе часто приходится формировать однотипные вордовские документы (акты, письма и т.п.).
Нашел подходящие куски кода, немного подогнал под себя и заработало кое-как.
Если коротко, то макросом, например, фраза {СуммаБезНДС} в шаблоне( .dot) заменяется на число из таблицы, скажем, 3 443 4343 434,44грн. Циклом макрос пробегается по всей таблице и на основании разных критериев определяет, какие документы из каких шаблонов создавать, и какими данными их заполнять.

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

Первым делом, подумал, что стоит изменить сам разделитель на неразрывный пробел (Alt+0160). Но не помогло... Во вкладке Дополнительно ввел, как мне надо - на выходе простой пробел все равно.

Пока что временно решил написать пользовательскую функцию для преобразования пробелов:

[vba]
Код
Function NoBreakingSpacesNumber(cell As Range) As String
    If IsNumeric(cell) Then
        NoBreakingSpacesNumber = Trim$(WorksheetFunction.Substitute(cell.Text, " ", " ")) // (Alt+0160)
    Else
        NoBreakingSpacesNumber = Trim$(cell.Text)
    End If
End Function
[/vba]

Сам макрос подстановки от нее пока сильно тормозить не стал. Годится, в общем.
Но из-за подобного преобразования числа из вордовских документов уже перестают быть числами. То есть, если вдруг придется их обратно копировать в тот же Excel, из-за пробелов они воспринимаются исключительно как текст.

В принципе, это не критично. Но чувствую, что решение мое корявое какое-то.

Подскажите, есть ли какой-то более элегантный способ решить мою проблему? Может, кто-то уже сталкивался.
Был бы очень благодарен! yes
 
Ответить
СообщениеРебята, нужен совет со стороны. :'(

В общем, по работе часто приходится формировать однотипные вордовские документы (акты, письма и т.п.).
Нашел подходящие куски кода, немного подогнал под себя и заработало кое-как.
Если коротко, то макросом, например, фраза {СуммаБезНДС} в шаблоне( .dot) заменяется на число из таблицы, скажем, 3 443 4343 434,44грн. Циклом макрос пробегается по всей таблице и на основании разных критериев определяет, какие документы из каких шаблонов создавать, и какими данными их заполнять.

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

Первым делом, подумал, что стоит изменить сам разделитель на неразрывный пробел (Alt+0160). Но не помогло... Во вкладке Дополнительно ввел, как мне надо - на выходе простой пробел все равно.

Пока что временно решил написать пользовательскую функцию для преобразования пробелов:

[vba]
Код
Function NoBreakingSpacesNumber(cell As Range) As String
    If IsNumeric(cell) Then
        NoBreakingSpacesNumber = Trim$(WorksheetFunction.Substitute(cell.Text, " ", " ")) // (Alt+0160)
    Else
        NoBreakingSpacesNumber = Trim$(cell.Text)
    End If
End Function
[/vba]

Сам макрос подстановки от нее пока сильно тормозить не стал. Годится, в общем.
Но из-за подобного преобразования числа из вордовских документов уже перестают быть числами. То есть, если вдруг придется их обратно копировать в тот же Excel, из-за пробелов они воспринимаются исключительно как текст.

В принципе, это не критично. Но чувствую, что решение мое корявое какое-то.

Подскажите, есть ли какой-то более элегантный способ решить мою проблему? Может, кто-то уже сталкивался.
Был бы очень благодарен! yes

Автор - Невилл
Дата добавления - 15.07.2016 в 11:22
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Word » Подстановка чисел Excel-Word (разделители разрядов) (Функции/Function)
Страница 1 из 11
Поиск:

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