Q:

Copy a sheet from one workbook and save in a new workbook with the name being a value in a cell

I would like to copy Sheet2 from Workbook1 and paste it in Sheet1 of a new Workbook and save the new Workbook as the value of cell A1 in Sheet2, Workbook 1. I would like this macro to fire when I click a button that I have added.
Here is what I have done so far but it creates two Workbooks
- One with the correct name but not the content of Sheet2, Workbook1
- And another that has the content of Sheet2, Workbook1 but not the correct Workbook name
Sub CreateWorkbook()

Dim n As String
n = ThisWorkbook.Path & "\" & Range("A1").Value & ".xls"
Workbooks.Add
ActiveWorkbook.SaveAs n
ThisWorkbook.Sheets("Sheet2").Copy
ActiveWorkbook.Sheets("Sheet1").PasteSpecial xlPasteValues

End Sub

What am I missing here?

A:

I don't think the new workbook created by Workbooks.Add becomes ActiveWorkbook by default. 
Working with ThisWorkbook and ActiveWorkbook can get confusing.
I like to set things like Workbooks and worksheets to variables so you know what your dealing with :)
I couldn't get the Copy then PasteSpecial bit to work (although I didn't try all that hard).
The example below should do what you want. I used Sheet2!A1 for the file name, wasnt sure what the AK545 in your code example was for.
Sub Example()
Dim Output As Workbook
Dim FileName As String

Set Output = Workbooks.Add
FileName = ThisWorkbook.Path & "\" & ThisWorkbook.Worksheets(2).Cells(1, 1).Value & ".xls"

Output.SaveAs FileName

Application.DisplayAlerts = False

Output.Worksheets("Sheet1").Delete
ThisWorkbook.Worksheets(2).Copy Before:=Output.Worksheets("Sheet2")
Output.Worksheets(1).Name = "Sheet1"

Application.DisplayAlerts = True

Output.Save

End Sub

