J
jollynicechap
I'm trying to create a workbook of labels using an array to fill a range of
cells A4 to P75 from a user input box or boxes. The order should be A4:A75
through to P475. i.e. A4 = 1 to A75 = 72 etc. I would like to expand the
user input for text as well as numerical data, where the text element would
be fixed and the numerical data would be sequential. e.g. 7F/01-001
The following sub (borrowed from Excel 2000 Power Programming with VBA)
works but in rows instead of cols.
My VBA ability is very, very rusty & I could use some help.
TIA
Sub ArrayFillRange()
' Fill a range by transferring an array
Dim TempArray() As Integer
Dim TheArray As Range
' Get the dimensions
CellsDown = Val(InputBox("How many cells down?"))
CellsAcross = Val(InputBox("How many cells across?"))
' Redimension temp array
ReDim TempArray(1 To CellsDown, 1 To CellsAcross)
' Set worksheet range
Set TheRange = ActiveCell.Range(Cells(1, 1), Cells(CellsDown,
CellsAcross))
' Fill the temp array
Currval = 0
Application.ScreenUpdating = False
For i = 1 To CellsDown
For j = 1 To CellsAcross
TempArray(i, j) = Currval + 1
Currval = Currval + 1
Next j
Next i
' Transfer temp array to worksheet
TheRange.Value = TempArray
End Sub
cells A4 to P75 from a user input box or boxes. The order should be A4:A75
through to P475. i.e. A4 = 1 to A75 = 72 etc. I would like to expand the
user input for text as well as numerical data, where the text element would
be fixed and the numerical data would be sequential. e.g. 7F/01-001
The following sub (borrowed from Excel 2000 Power Programming with VBA)
works but in rows instead of cols.
My VBA ability is very, very rusty & I could use some help.
TIA
Sub ArrayFillRange()
' Fill a range by transferring an array
Dim TempArray() As Integer
Dim TheArray As Range
' Get the dimensions
CellsDown = Val(InputBox("How many cells down?"))
CellsAcross = Val(InputBox("How many cells across?"))
' Redimension temp array
ReDim TempArray(1 To CellsDown, 1 To CellsAcross)
' Set worksheet range
Set TheRange = ActiveCell.Range(Cells(1, 1), Cells(CellsDown,
CellsAcross))
' Fill the temp array
Currval = 0
Application.ScreenUpdating = False
For i = 1 To CellsDown
For j = 1 To CellsAcross
TempArray(i, j) = Currval + 1
Currval = Currval + 1
Next j
Next i
' Transfer temp array to worksheet
TheRange.Value = TempArray
End Sub