- Нет необходимости
.Select
или .Activate
ваших рабочих книг / листов.Вы объявили переменные книги, поэтому используйте их ! UsedRange
, что может быть ненадежным.Я рекомендую перейти на более стандартный расчет последней строки.Прямо сейчас код использует Column A
для определения последней строки для всех столбцов в вашем диапазоне, что, в свою очередь, определяет диапазон, через который вы собираетесь проходить. - Как указано @dwirony,
TRIM
Функция может быть вызвана непосредственно из VBA
.
См. Комментарий @Tim Williams ниже, чтобы определить, является ли приемлемой версия Trim для VBA
Option Explicit
Sub Test()
Dim masterWB As Workbook, dailyWB As Workbook
Dim C As Range, LRow As Long
Set masterWB = Application.ThisWorkbook
Set dailyWB = Workbooks.Open("excelguy.xlsm")
dailyWB.Sheets("Summary").Range("A1:BJ200").Copy masterWB.Sheets("Master Summary").Range("A1").Rows("1:1")
With masterWB.Sheets("Master Summary")
LRow = .Range("A" & .Rows.Count).End(xlUp).Row
For Each C In .Range("A2:BJ" & LRow)
C.Value = Trim(C)
'C.Value = Application.WorksheetFunction.Trim(C)
Next C
End With
End Sub
Если вы просто подстригаетезначения, вы можете загрузить свой диапазон в массив, изменить значения в новый массив, а затем выполнить перенос значения вашего нового усеченного массива в диапазон