我的VBA Excel代码出现问题,我试图合并选定的单元格并将其后面的数据放在单词合并的位置。 (删除单元格不起作用。)
以下是一个示例(|
是单元格的分隔符):
|堆栈|溢出| 100 |无|东西|
运行代码,它应如下所示:
| Stack Overflow | 100 | None | Something |
但我得到"错误91对象变量或没有设置块,"这是代码:
Dim Cells As Range
Dim CellsContents As String
Dim RangeCells As Range
Set RangeCells = Application.Selection
For Each Cells In RangeCells
CellsContents = CellsContents & Cells.Value & " "
Next
RangeCells.Value = VBA.Left(CellsContents, VBA.Len(CellsContents) - 1)
Range(Cells(ActiveCell.Row, ActiveCell.Column + Selection.Count), Cells(ActiveCell.Row, 20)).Copy Destination:=Cells(ActiveCell.Row, ActiveCell.Column + Selection.Count - 1)
错误发生在代码的最后一行。我试图用Set
在它前面加上一个对象变量,但后来我在目标上遇到了一个错误。如果你想了解更多这方面的信息,因为我知道它有点令人困惑,请告诉我。
答案 0 :(得分:1)
你的问题是,在最后一行,变量Cells不再在范围内。
因此,您会收到描述“未设置对象变量”的错误。
答案 1 :(得分:0)
你不能使用"细胞"这条路。您需要在以下之前引用工作表对象: 即。 activesheet.cells或工作表(" SheetName")。cells
用下面的代码替换最后一行,它应该可以工作。
希望这有帮助。
Range(ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + Selection.count), ActiveSheet.Cells(ActiveCell.Row, 20)).Copy ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + Selection.count - 1)