我正在尝试使用Application.WorksheetFunction.Trim
修剪一系列单元格。我正在尝试定义范围,但是出现类型不匹配错误
我创建了Dim并设置了范围并为该函数创建了一个变量。
Dim rng As Range
Dim myanswer
Set rng = ActiveSheet.Range("T2:T10")
myanswer = Application.WorksheetFunction.Trim(rng)
这是我的另一个密码
Dim rng As Range
Dim LastRow As Long
LastRow = Cells(Rows.Count, "T").End(xlUp).Row
Set rng = Range("T2:T" & LastRow)
Application.WorksheetFunction.Trim (rng)
我希望它修剪每个单元以消除多余的空间。
也尝试使用此方法,但内存不足。
rng = Application.WorksheetFunction.Trim(Cells.Value)
答案 0 :(得分:1)
Trim()
需要字符串参数。 Application.WorksheetFunction.Trim (rng)
中的参数是一个范围,只有在范围由单个单元格组成的情况下,才能将其解析为字符串。
要Trim()
在给定范围内的所有单元格,应将它们循环:
Public Sub TestMe()
Dim myCell As Range
For Each myCell In Worksheets(1).Range("A1:A5")
myCell = WorksheetFunction.Trim(myCell)
Next myCell
End Sub
答案 1 :(得分:1)
您的代码不起作用,因为您需要遍历每个单元格,无法一次完成所有操作
Dim rng As Range, r as range
Dim myanswer
Set rng = ActiveSheet.Range("T2:T10")
for each r in rng
r.value=Application.WorksheetFunction.Trim(r)
next r
您可以使用“评估”来避免循环
Sub x()
Dim r As Range
Set r = Range("T2:T10")
r = Evaluate("IF(" & r.Address & "="""","""",TRIM(" & r.Address & "))")
End Sub
请注意,工作表函数TRIM删除了多余的内部空间,而VBA Trim仅删除了前导和尾随空间(无论如何您都已覆盖了它)。