Not really sure if this is what you wanted.
Sub test()
Dim myStep As Long, i As Long, LastR As Range
Dim rng As String, flg As Boolean, ws As Worksheet
Sheets("master").Cells.Clear
myStep = Application.InputBox("Enter # of columns", Type:=1)
rng = Selection.EntireColumn.Address
For Each ws In Worksheets
If ws.Name <> Sheets("master").Name Then
With Intersect(ws.Range(rng), ws.Range(rng).CurrentRegion)
If .Count > 1 Then
For i = 1 To .Columns.Count Step myStep
Set LastR = Sheets("master").Cells(1)
If Not IsEmpty(LastR) Then
Set LastR = Sheets("master").Range("a" & Rows.Count).End(xlUp)(2)
flg = True
End If
.Columns(i).Offset(IIf(flg, 1, 0)) _
.Resize(.Rows.Count - IIf(flg, 1, 0), myStep).Copy LastR
Next
End If
End With
End If
Next
End Sub
Bookmarks