0

我想编写一些 VBA,它在单元格上重复执行一个操作,直到它到达工作表边缘,例如 A 列,无论它从哪里开始。我发现如果我告诉它重复的次数多于列数,我会收到错误,因为代码试图移动到 A 列左侧的列。如何限制循环在 A 列停止?

例如,如果我使用

 For n = 1 To 5
'
ActiveCell.Offset(0, -1).Range("A1:A2").Select
Selection.merge

'
Next n

然后,如果我从 G 列中的一个单元格开始选择它就可以了,但是如果我在 F 列中选择了一个或更少的单元格,它就会崩溃。

谢谢!

4

1 回答 1

1

这应该做你想要的。请注意,VBA 的一个关键原则是几乎不需要Select单元格。(虽然宏记录器不知道这一点)。

Sub MergeEm()
Dim n As Long
Dim cellActive As Excel.Range
Dim CellRow As Long

Set cellActive = ActiveCell
CellRow = cellActive.Row
'Stepping backwards - not necessary, but in spirit with your original code
For n = cellActive.Column To 1 Step -1
    cellActive.Parent.Cells(CellRow, n).Range("A1:A2").Merge
Next n
End Sub
于 2013-01-24T14:59:03.027 回答