powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема VBA в Excel
4 сообщений из 4, страница 1 из 1
Проблема VBA в Excel
    #34070819
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня следующая загвоздка.
Есть код:

Columns("d:d").Select
Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Т.е. я заменяю в колонке "D" два пробела на один (если где встречается).
Это очень не удобно, т.к. если пробелов стоит 10, то и 10 раз нужно запускать макрос.
Хотелось чтобы при запуске макроса я сам задавал с какой колонкой это нужно проделать и не 10 раз, а один.

Т.е. типа следующего:

Dim d As String

d = InputBox("В какой колонке Вы хотите удалить пробелы?")
Columns("d:d").Select
Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Так ничего не получается. Может вообще каким-то другим образом это можно осуществить?
Прошу помощи...
...
Рейтинг: 0 / 0
Проблема VBA в Excel
    #34070988
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    Dim rng As Range, rng2 As Range
    On Error Resume Next
    Set rng = Application.InputBox( _
      Prompt:="Где Вы хотите удалить пробелы?", _
      Title:="Выбор", Type:= 8 , Left:= 200 , Top:=- 65 )
    If Not rng Is Nothing Then
        For Each rng2 In rng
            If rng2.Value <> "" Then rng2.Value = Application.WorksheetFunction.Trim(rng2.Value)
        Next
    End If
...
Рейтинг: 0 / 0
Проблема VBA в Excel
    #34070998
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отлично! Большое спасибо. Все работает. Тему считаю закрытой
...
Рейтинг: 0 / 0
Проблема VBA в Excel
    #34071090
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub test()
    Dim cell As Range, rng As Range
    On Error Resume Next
    Set cell = Application.InputBox(Prompt:="Выберите колонку, в которой Вы хотите удалить пробелы?", Type:= 8 )( 1 )
    Set rng = Intersect(cell.EntireColumn, cell.Parent.UsedRange)
    With rng
        .Offset(,  1 ).EntireColumn.Insert
        With .Offset(,  1 )
            .FormulaR1C1 = "=TRIM(RC[-1])"
            .Value = .Value
        End With
        .EntireColumn.Delete
    End With
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема VBA в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]