Вопросы, вызываемые макросом, который усекает пробелы - PullRequest
0 голосов
/ 31 октября 2018

Нашел этот макрос в Интернете, и, изучая его, я задал два вопроса, на которые мне не удалось найти ответ:

Во-первых, нужно ли объявлять переменные объекта MyRange и MyCell? Какие преимущества это дает?

Во-вторых, основываясь на предыдущем опубликованном мной вопросе, является ли излишним проверять, является ли ячейка пустой или нет, прежде чем ее значение обрезается. В чем преимущество этой проверки? Это просто для экономии усилий / времени компиляции? Или есть другие технические причины?

Sub TrimSpaces()
Dim MyRange As Range
Dim MyCell As Range
Select Case MsgBox(“Workbook First?”, vbYesNoCancel)
    Case Is = vbYes
    ThisWorkbook.Save
    Case Is = vbCancel
    Exit Sub
End Select
Set MyRange = Selection
For Each MyCell in MyRange
    If Not IsEmpty(MyCell) Then
        MyCell = Trim(MyCell)
    End If
Next MyCell
End Sub

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Первый:
Хорошей практикой является использование Option Explicit и объявление всех переменных. Кроме того, объявление диапазонов, рабочих таблиц и т. Д. - хорошая техника, чтобы избежать использования .Select или .Activate. Как избежать использования Select в Excel VBA

Второе:
MyCell = Trim(MyCell) вызовет действие записи (занимает время) для этой ячейки, даже если она была пустой. Проверка того, было ли оно пустым, могла бы избежать ненужного действия записи и, следовательно, сделать его немного более эффективным.

0 голосов
/ 31 октября 2018

По моему мнению, лучше объявить диапазон, чтобы избежать повторения и быть более ясным, особенно если у вас длинный код. По вашему случаю вы используете цикл для проверки каждого "MyCell" (адрес одной части (диапазон )) всего "MyRange" (который также является диапазоном).

Во-вторых, проверка значения ячейки поможет сэкономить время, предотвратив выполнение кода после, если условие не соответствует.

Наконец, функция Trim & Clean поможет вам «очистить» значение ячейки от невидимого символа, ненужных пробелов и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...