|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Подскажите... Заранее благодарен... У меня есть ячейки в Excel... Например. ___________________________________ 1. | г. Москва ул. 50 лет ССС, 14-2 567 ---------------------------------------- 2. | ул. 60 лет Победы 2 к. 7-23 12 ---------------------------------------- 3. | ул. Советская 24-5 г. Киев 0 ---------------------------------------- в ячейке с адресом в конце текста есть число, которое может быть в пределах от 0 до 10000. ВОПРОС! Как удалить эти числа из ячейки и какой код VBA мне в этом поможет. P.S. Может быть есть какой-то код, который определяет колличество пробелов в ячейке, а сумма пробелов и есть номер последнего пробела после которого находится ненужное число, т.е. удалить все что находится после последнего пробела в ячейке. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 21:22 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Vadiks, можно, если бы Вы потрудились приложить файл - решение было бы уже сейчас пока вот код функции Function lastpr(t As Range) Dim arr, i As Integer, str As String arr = Split(t) For i = 0 To UBound(arr) - 1 str = str & " " & arr(i) Next i lastpr = str End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 21:43 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
вот возьмите ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 21:50 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Vadiks, Код: plaintext 1. 2. 3. 4. 5.
Можно обойтись и стандартными функциями Excel ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 21:53 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Большое Всем, Огромное спасибо... Все заработало... В следующий раз обязательно буду прикреплять файл ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 22:26 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Vadiks, так будет правильнее: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 00:21 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
With ActiveCell i = InStrRev(.Text, " ") ActiveCell = Left(.Text, i) End With тоже самое, только в профиль ) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 09:46 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Dophin, а если число будет 4х значное разделителя точно не будет ? т.е. 1000-> 1 000??? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 09:47 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Так вот где основное обсуждение :) Я тут проверил варианты - для идеала многим нехватает Trim(), RTrim() и проверки на наличие пробелов и вообще текста в ячейке. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 10:24 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Hugo121, надо же что-то и автору оставить ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 10:28 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Я думаю, можно и не заметить, как впереди появляется пробел... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 10:36 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Vadiks, а вам обязательно в vba? стандартная функция =СЖПРОБЕЛЫ() делает то же самое ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 10:49 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
PlanB, задача немного другая - удаление последнего "слова" строки. У Уокенбаха на эту тему есть готовая формула, но она довольно громоздкая. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 10:57 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
vlth, а по моему все ОЧЕНЬ просто нам известно что 5 последних символов строки содержат значение от 1 до 10000 отрезаем 5 последних символов = ПРАВСИМВ(A1;5) 2 567 теперь ищем в составе этого значения пробел =ПОИСК(" ";правсимв(A1;5)) получается 2 теперь отрезаем 5-x правых символов =ПРАВСИМВ(A1;5-ПОИСК(" ";ПРАВСИМВ(A1;5))) вот Вам 567 т.к. в алгоритме есть дыра на следующей строке "1 1 1" ищем пробел в последних 3х символах если он есть перерасчитываем формулу не для 5 символов а для 3х итого =ЕСЛИ( ЕОШИБКА(ПОИСК(" ";ПРАВСИМВ(A1;3))); ' ищем пробел в последних трех символах ПРАВСИМВ(A1;5-ПОИСК(" ";ПРАВСИМВ(A1;5))); ' если его нет ПРАВСИМВ(A1;3-ПОИСК(" ";ПРАВСИМВ(A1;3))) ' если он есть ) вот проверяйте =ЕСЛИ(ЕОШИБКА(ПОИСК(" ";ПРАВСИМВ(A1;3)));ПРАВСИМВ(A1;5-ПОИСК(" ";ПРАВСИМВ(A1;5)));ПРАВСИМВ(A1;3-ПОИСК(" ";ПРАВСИМВ(A1;3)))) Все более чем просто ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 13:48 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Shamanus, учитывая возможность использования числа 10000, необходимо отсекать 6 знаков: =ЕСЛИ(ЕОШИБКА(ПОИСК(" ";ПРАВСИМВ(A1;3)));ПРАВСИМВ(A1; 6 -ПОИСК(" ";ПРАВСИМВ(A1; 6 )));ПРАВСИМВ(A1;3-ПОИСК(" ";ПРАВСИМВ(A1;3)))) Когда я писал про реализацию задачи с помощью формул, мне и представлялся примерно такой, последовательный перебор знаков в конце строки. С помощью Уокенбаха получается гораздо более элегантная формула для отсечения последнего слова: =ЛЕВСИМВ(A1;НАЙТИ("*";ПОДСТАВИТЬ(A1;" ";"*";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))-1) Лишние пробелы, особенно в конце строки, необходимо убрать до применения формул. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 15:45 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
vlth, точно, не проверил сразу но сути это не меняет ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 16:19 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
vlthShamanus, учитывая возможность использования числа 10000, необходимо отсекать 6 знаков: =ЕСЛИ(ЕОШИБКА(ПОИСК(" ";ПРАВСИМВ(A1;3)));ПРАВСИМВ(A1; 6 -ПОИСК(" ";ПРАВСИМВ(A1; 6 )));ПРАВСИМВ(A1;3-ПОИСК(" ";ПРАВСИМВ(A1;3)))) Когда я писал про реализацию задачи с помощью формул, мне и представлялся примерно такой, последовательный перебор знаков в конце строки. С помощью Уокенбаха получается гораздо более элегантная формула для отсечения последнего слова: =ЛЕВСИМВ(A1;НАЙТИ("*";ПОДСТАВИТЬ(A1;" ";"*";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))-1) Лишние пробелы, особенно в конце строки, необходимо убрать до применения формул. тогда задача решается так =ПРАВСИМВ(A1;ДЛСТР(A1)-ДЛСТР(ЛЕВСИМВ(A1;НАЙТИ("*";ПОДСТАВИТЬ(A1;" ";"*";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))-1))-1) что не более элегантно чем у меня :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 16:22 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
vlth, черт побери, это я неправ, что то с моей внимательностью. Я вывел это число в этом коде, а не все кроме него ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 16:26 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
ShamanusЯ вывел это число в этом коде, а не все кроме негоShamanus, неважно, сути не меняет )) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 17:10 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Пардон, не важно ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 17:12 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
PlanB, К счастью или к сожелению именно в VBA ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 23:36 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Shamanus, К счастью пробелов точно нет 1000 или 10000 все одно(слава богу) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 23:37 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
В данном случае, нельзя отсекать не пять ни шесть символов т.к. может быть и ноль... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 23:40 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
Vadiks, ноль или null? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2010, 08:56 |
|
Как удалить все что находится после последнего пробела в ячейке Excel при помощи VBA
|
|||
---|---|---|---|
#18+
а если в конце стоит символ т.е буква как у всего столбца удалить последний 1 - 3 символа после последнего пробела вот пример текста Майка жен. 69slam Singlet Top Cotton BONSAI L Майка жен. 69slam Singlet Top Cotton BONSAI M Майка жен. 69slam Singlet Top Cotton BONSAI S Майка жен. 69slam Singlet Top Cotton BONSAI XL Майка жен. 69slam Singlet Top Cotton DOTT SKULL L Майка жен. 69slam Singlet Top Cotton DOTT SKULL M Майка жен. 69slam Singlet Top Cotton DOTT SKULL S Майка жен. 69slam Singlet Top Cotton DOTT SKULL XS Майка жен. 69slam Singlet Top Cotton GUITAR L Майка жен. 69slam Singlet Top Cotton GUITAR M ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2011, 21:19 |
|
|
start [/forum/topic.php?fid=61&msg=36471363&tid=2175379]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 330ms |
total: | 459ms |
0 / 0 |