首页 > 解决方案 > 如何删除单元格开头和结尾的空格?

问题描述

我的电子表格中有一个导入的 CSV。当我运行刷新宏时,它会在每个单元格的开头和结尾添加一个空格。

我试图通过使用相同的宏修剪单元格开头和结尾的所有空格(而不是介于两者之间)来解决它。

在单个单元格上执行此操作没有问题

Range("F10").Value = Trim(Range("F10").Value)

在一个范围内它什么都不做,没有错误信息,只是没有反应

Dim cell As Range, areaToTrim As Range
Set areaToTrim = Sheet1.Range("A6:J10")
For Each cell In areaToTrim
    cell.Value = Trim(cell.Value)
Next cell

实际上,我不希望它是 A6 到 J10,我只是把它放进去看看它是否适用于一个范围。我希望它是 A6 到 J 最后一行。所以我希望我的最终代码是

Dim lastrowindex As Long
lastrowindex = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row

Dim db_range_start As String
Dim db_range_end As String

db_range_start = "A6"
db_range_end = "J" & lastrowindex
db_range_region = db_range_start & ":" & db_range_end

Dim db_range As Range
Set db_range = Range(db_range_region)

Dim cell As Range, areaToTrim As Range
Set areaToTrim = Sheet1.Range(db_range)
For Each cell In areaToTrim
    cell.Value = Trim(cell.Value)
Next cell

但这会引发

对象范围的方法值失败。

标签: excelvbacsv

解决方案


下面怎么样,只是把你的代码简化了,因为你声明db_range为一个范围,然后尝试使用它来指定范围,使用Sheet1.Range(db_range)它可以使用一个字符串而不是一个范围:

Sub Trim_Range()
Dim ws As Worksheet: Set ws = Sheet1
Dim LastRow As Long
Dim c As Range
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

For Each c In ws.Range("A6:J" & LastRow)
    c.Value = Trim(c.Value)
Next c
End Sub

推荐阅读