簡體   English   中英

如何編寫Excel VBA代碼以重復直到到達工作表邊緣?

[英]How can I write Excel VBA code to repeat until it reaches the worksheet edge?

我想編寫一些VBA,無論它從何處開始,它都會反復對單元格執行操作,直到到達工作表邊緣(例如A列)為止。 我發現,如果我告訴它重復的次數多於列數,則在代碼嘗試移至A列左側的列時會出現錯誤。如何限制循環以在A列處停止?

例如,如果我使用

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

'
Next n

然后,如果我從選中的G列中的一個單元格開始就可以了,但是如果我在F列或更少的列中選擇了一個單元格,它就會崩潰。

謝謝!

這應該做您想要的。 請注意,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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM