我正在尝试使用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”
答案 0 :(得分:1)
我只列举标题行并检查每个值
Dim Cell As Range
For Each Cell In wsDispoData.ListObjects("Table_DispoData").HeaderRowRange
Cell.value = WorksheetFunction.Trim(Cell.value)
Next Cell