Utan "ClearFormats" och kontroll av om bladet "Combined" redan finns:
Sub Combine()
Dim I As Long
Dim xRg As Range
On Error Resume Next
'Skapar ett nytt blad (nr1) och ger det namnet "Combined"
Worksheets.Add Sheets(1)
ActiveSheet.Name = "Combined"
'ange startpunkt för inklistring:
Set xRg = Sheets("Combined").Range("A1")
'Loopa igenom alla blad utom det första (combine) och kopiera all data (used range) till xRg ("Combined", cell A1)
For I = 2 To Sheets.Count
Sheets(I).UsedRange.Copy xRg
' flytta inklistringspunkten till Höger (samma som att gå med Ctrl+ högerpil) + en kolumn. och loopa (next)
Set xRg = xRg.End(xlToRight).Offset(0, 1)
Next i
End Sub
om du har en massa formler i käll-bladen och vill köra "klistra in som värde" så kan du dela upp Copy/paste på två rader. Typ:
Sheets(I).UsedRange.Copy
xRg.PasteSpecial Paste:=xlPasteValues
Om du har "smala tabeller" (en kolumn) så kankse inte Ctrl+högerpil funkar som du vill. Då kan du byta ut
Set xRg = xRg.End(xlToRight).Offset(0, 1)
mot samma logik som använder för raderna, dvs:
Set xRg = Sheets("Combined").Cells(1, Sheets("Combined").UsedRange.Columns.Count + 1)
Om du kollar CELLS() så ser du att den "fasta" 1:an står först nu (rad) medan beräkningen står efter kommetecknet (kolumn)