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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2011, 15:53   #1
0creator0
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 94
По умолчанию Trim

Здравствуйте, подскажите, пожалуйста, как решить следующую задачу, у меня есть текст, который вставляется в TextBox ,а затем в поле Variables, а это поле содержит пробелы и вот я хотел убрать пробелы из этого поля и присвоить этот текст в другое, вот что получилось, что не так?
Цитата:
.Variables("Лист").Value = Trim(.Replace(.Variables("Название_ комплекта").Value, " "))
И второй вариант, и то же не рабочий .
Цитата:
.Variables("Лист ").Value = Trim(.Variables("Название_комплекта ").Value)
0creator0 вне форума Ответить с цитированием
Старый 02.10.2011, 18:42   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

что у Вас за отрывки, если есть точка, тогда надо больше код выкладывать, чтобы понимать что сокращено под точкой
первый из двух отрывков работать не будет, учитесь добавлять $ перед Trim, Replace, MsgBox то есть Trim$, Replace$, MsgBox$ и других Ригхт, Лефт, Mид
Ципихович Эндрю вне форума Ответить с цитированием
Старый 02.10.2011, 21:14   #3
0creator0
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 94
По умолчанию

Подскажите, пожалуйста, как сделать что б при в воде в TextBox один и тот же текст , в дном поле был без удаления пробелов , а в другой с удалением пробелов?
Вложения
Тип файла: doc Trim.doc (34.0 Кб, 17 просмотров)
0creator0 вне форума Ответить с цитированием
Старый 03.10.2011, 13:00   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Попробуйте такую функцию:
Код:
Function TrimAll(s As String) As String

'Удаляет пробелы в начале и конце строки,
'заменяет кратные пробелы внутри строки на одиночные пробелы
'аналогично функции Application.Trim в Excel

Dim i&, j&
TrimAll = Trim$(s)
j = Len(TrimAll)
Do
    i = j
    TrimAll = Replace$(TrimAll, "  ", " ")
    j = Len(TrimAll)
Loop Until i = j
End Function
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 03.10.2011 в 13:03.
Казанский вне форума Ответить с цитированием
Старый 03.10.2011, 15:30   #5
0creator0
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 94
По умолчанию

Казанский, спасибо, ваша функция очень помогла, скажите, пожалуйста, какую роль в вашей функции играет i&, j& , а не просто i, j
А так же зачем ставятся $ - Trim$, Replace$
И какова роль i = j (Это для перебора пока не встретит первую букву значит Trim закончен?)
0creator0 вне форума Ответить с цитированием
Старый 03.10.2011, 17:43   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

i& - объявление типа Long, то же, что i As Long. Арифметика Long самая быстрая в VBA (быстрее, чем Integer и Byte).
Текстовые функции без $ возвращают данные типа Variant, а с $ - типа String, и это работает немного быстрее.

В этой функции i - длина строки до замены двойных пробелов на одиночные, j - длина строки после замены. Если i=j, то двойных пробелов больше нет, и происходит выход из цикла.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналог "правильного" trim() и регулярные выражения в VBA Smaragdov Microsoft Office Excel 13 21.03.2012 16:12
Вопрос по функциям trim и empty Svetix PHP 4 01.06.2009 23:48
Аналог функции Trim-удаление лишних пробелов в начале и в конце передаваемой строки GULINA Помощь студентам 6 23.05.2009 15:07