每个选定单元格的Excel VBA循环macros

我有一个macros只是改变了一个选定的行中的单元格的值。

Cells(Application.ActiveCell.Row, 20).Select ActiveCell.Value = "withdraw" 

不过,我希望能够select一些行,不一定是连续的,例如从下面的例子中selectA1,A3和A4,并为每个select单元格设置macros改变列B,

  AB 1 Brian 2 James 3 Jenny 4 Frank 5 Tim 

  AB 1 Brian Withdraw 2 James 3 Jenny Withdraw 4 Frank Withdraw 5 Tim 

我将如何去从选定的范围获取活动行,并循环每行的macros?

以下是您可能的解决scheme:

 Private Sub a() Dim sSel As String Dim aSel As Variant Dim rX As Range Dim i As Integer Dim j As Integer sSel = Selection.Address aSel = Split(sSel, ",") For i = 0 To UBound(aSel) Set rX = Application.ActiveCell.Parent.Range(CStr(aSel(i))) For j = 1 To rX.Rows.Count rX.Rows(j).EntireRow.Cells(1, 2) = "withdraw" Next Next End Sub 

请不要这样,您可以select任何地方和任何行的任何数量的单元格。

这个简单的代码应该为你工作:

 Sub Button1_Click() Dim r As Range Set r = Selection r.Offset(, 1) = "Withdraw" End Sub