如何使用VBA代码修剪表中的标题

时间:2019-07-09 09:59:35

标签: excel vba trim tableheader

我正在尝试使用VBA代码修剪表的标题,因为其中某些表的前面每个月都有变化,这使得编码变得很困难。

当我分解代码并逐步运行它时,它可以正常工作,但是当我运行整个宏时,它将删除一些标题,并用其他工作表行或“第1列”,“第1列”中的信息替换它们2“,等等。

我相信我在调用(" & .Address & ")选择项时缺少一些代码参考吗?

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

我尝试仅使用 Trim 函数,但是由于它是范围的数组,因此无法使用,有人建议使用“ 求值”。 “功能。

我也尝试过将trim函数用作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”

1 个答案:

答案 0 :(得分:1)

我只列举标题行并检查每个值

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