Использование Application.WorksheetFunction.Trim для обрезки диапазона ячеек - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь обрезать диапазон ячеек, используя Application.WorksheetFunction.Trim.Я пытаюсь определить свой диапазон, но я получаю ошибку несоответствия типов

Я создал Dim и установил свой диапазон и создал переменную для функции.

Dim rng As Range
Dim myanswer

Set rng = ActiveSheet.Range("T2:T10")
myanswer = Application.WorksheetFunction.Trim(rng)

Вот еще один измои коды

Dim rng As Range
Dim LastRow As Long

LastRow = Cells(Rows.Count, "T").End(xlUp).Row
Set rng = Range("T2:T" & LastRow)

Application.WorksheetFunction.Trim (rng)

Я хочу, чтобы он обрезал каждую ячейку, чтобы избавиться от лишних пробелов.

Также пытался использовать это, но не хватало памяти.

rng = Application.WorksheetFunction.Trim(Cells.Value)

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

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

Dim rng As Range, r as range
Dim myanswer

Set rng = ActiveSheet.Range("T2:T10")
for each r in rng    
     r.value=Application.WorksheetFunction.Trim(r)
next r

Вы можете избежать цикла, используя Evaluate

Sub x()

Dim r As Range

Set r = Range("T2:T10")

r = Evaluate("IF(" & r.Address & "="""","""",TRIM(" & r.Address & "))")

End Sub

Обратите внимание, что функция рабочего листа TRIM удаляет лишние внутренние пробелы, тогда как VBA Trim удаляет только начальные и конечные пробелы (вы все равно это охватили).

0 голосов
/ 06 февраля 2019

Trim() ожидает строковый аргумент.Аргумент в Application.WorksheetFunction.Trim (rng) является Range, который может быть проанализирован в строку, только если диапазон состоит из одной ячейки.

До Trim() всех ячеек в данном диапазоне, они должны быть зациклены:

Public Sub TestMe()

    Dim myCell As Range
    For Each myCell In Worksheets(1).Range("A1:A5")
        myCell = WorksheetFunction.Trim(myCell)
    Next myCell

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