vba.trim не удаляет двойной интервал, только начальные / конечные пробелы.Для удаления промежуточных двойных пробелов необходима версия рабочего листа Application.Trim или WorksheetFunction.Trim.
Если у вас тройной интервал, один заменитель оставит вас с двойным пробелом.Application.Trim не будет.
Вы не хотите, чтобы Clean обрабатывал символы (т. Е. Пробелы), которые вы собираетесь удалить в любом случае, поэтому сначала обрежьте.
.Value2 (без информации о валюте или дате)) незначительно ускоряет обработку, когда у вас нет данных о валюте или дате;у вас есть строка, поэтому используйте .Value2.
AmountI = Application.Clean(Application.Trim(.Cells(j, 9).Value2))