If the procedure is in the worksheet module, then the Me keyword is fine. The
problem is that you used both RowIndex and RowNdx (instead of just one of them).
And if your account numbers aren't Longs, you may have other trouble.
The modified version of your code worked fine for me--as long as it was placed
in the worksheet module:
Option Explicit
Public Sub plugAccountNumber()
Dim accountNumber As Variant
Dim startRow As Long
Dim endRow As Long
Dim rowNdx As Long
Application.ScreenUpdating = False
On Error GoTo EndMacro:
' Just doing 50 as a test
startRow = 1
endRow = 50
For rowNdx = startRow To endRow
If Me.Cells(rowNdx, 1).Value <> "" Then
accountNumber = Me.Cells(rowNdx, 1).Value
Else
Me.Cells(rowNdx, 1).Value = accountNumber
End If
Next rowNdx
EndMacro:
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
Private Sub CommandButton1_Click()
Call plugAccountNumber
End Sub
=======
ps.
Debra Dalgleish has some other code that you may want to review:
http://contextures.com/xlDataEntry02.html#FillProg
Jim08 wrote:
>
> I have a spreadsheet that has the account number in the first collum of the
> parent row followed by some children rows that have no account number. I want
> to load the spreadsheet into an access database and normalize it but I need
> to load the account number into the children rows. So I tried the code below,
> it however does nothing. Any help is apprecaited
> Thanks
> Jim
> '
> ' Plug account number into mailbox records
> '
> Public Sub plugAccountNumber()
>
> Dim accountNumber As Long
> Dim startRow As Long
> Dim endRow As Long
> Dim rowNdx As Long
>
> Application.ScreenUpdating = False
> On Error GoTo EndMacro:
>
> ' Just doing 50 as a test
>
> startRow = 1
> endRow = 50
>
> For rowNdx = startRow To endRow
>
> If Me.Cells(rowNdx, 1).Value <> "" Then
> accountNumber = Me.Cells(rowIndex, 1).Value
> Else
> Me.Cells(rowIndex, 1).Value = accountNumber
> End If
>
> Next rowNdx
>
> EndMacro:
> On Error GoTo 0
> Application.ScreenUpdating = True
>
> End Sub
--
Dave Peterson