如何使用 VBA 代码 Trim table 中的标题

How to Trim Headings in a table with VBA code

我正在尝试 trim 使用 VBA 代码 table 的标题,因为其中一些前面的空格每个月都在变化,这使得编码变得困难.

当我分解代码并 运行 它一步一步工作时它工作正常但是当我 运行 整个宏时它删除了我的一些标题并用来自不同 运行 的信息替换它们=46=] 行或 "column 1"、"column 2" 等

我想我在调用 (" & .Address & ") 选择时遗漏了一些代码参考?

它正在替换单元格处于活动状态的 sheet 中的标题。 (如果它是在 运行 启用宏之前单击的最后一个单元格)。

我试过只使用 Trim 函数,但是因为它是一个范围数组,所以它不起作用,有人建议使用“评估”函数。

我也尝试过将 trim 函数用作 Worksheet 函数,但它给了我一个错误 "Run-time error 13" Type-mismatch”。以下代码:

    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”

Trim医学:"SOH" 和 "Compo"

我将枚举 header 行并检查每个值

Dim Cell As Range
For Each Cell In wsDispoData.ListObjects("Table_DispoData").HeaderRowRange
    Cell.value = WorksheetFunction.Trim(Cell.value)
Next Cell