Я пытаюсь урезать заголовки таблицы с помощью кода VBA, потому что некоторые из них имеют пробелы впереди, которые меняются каждый месяц, что затрудняет кодирование.
Когда я разбиваю код изапускайте его шаг за шагом, он работает нормально, но когда я запускаю весь макрос, он удаляет некоторые мои заголовки и заменяет их информацией из другой строки листа или просто «столбец 1», «столбец 2» и т. д.
Я полагаю, что мне не хватает некоторой ссылки на код, когда она вызывает выбор (" & .Address & ")
?
Он заменяет заголовки листа, где активна ячейка.(Если это была последняя ячейка, по которой щелкнули перед запуском макроса).
Я пробовал просто использовать функцию Trim , но поскольку это массив для диапазона, он не 't, и кто-то предложил использовать функцию « оценить ».
Я также пытался использовать функцию обрезки в качестве функции WorksheetFunction, но она выдала мне ошибку «Ошибка времени выполнения»13 "Несоответствие типов". Это было в следующем коде:
With wsDispoData.ListObjects("Table_DispoData").HeaderRowRange.EntireRow
.Value = WorksheetFunction.Trim(.Value)
End With
Это текущий код, который я использую, который заменяет неправильно.
Trim headings
With wsDispoData.ListObjects("Table_DispoData").HeaderRowRange.EntireRow
.Value = Evaluate("IF(ISTEXT(" & .Address & "),TRIM(" & .Address & "),REPT(" & .Address & ",1))")
End With
Ожидаемые результаты должны быть дляПример:
Текущие заголовки: "SOH" и "Compo"
Подрезаны: "SOH" и "Compo"