0

Workbook1 から Sheet2 をコピーして新しい Workbook の Sheet1 に貼り付け、新しい Workbook を Sheet2 の Workbook 1 のセル A1 の値として保存したいと思います。追加したボタンをクリックすると、このマクロが起動します。 .

これが私がこれまでに行ったことですが、2つのワークブックが作成されます.1つは正しい名前ですが、Sheet2、Workbook1の内容はありません.もう1つはSheet2、Workbook1の内容がありますが、正しいワークブック名​​ではありません.

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

ここで何が欠けていますか?

4

1 に答える 1

2

によって作成された新しいワークブックがデフォルトにWorkbooks.Addなるとは思いません。ActiveWorkbook

での作業は混乱を招く可能性がThisWorkbookあります。ActiveWorkbook

ワークブックやワークシートなどを変数に設定して、何を扱っているかがわかるようにするのが好きです:)

Copy私はその時のビットを機能させることができませんでしたPasteSpecial(私はそれほど一生懸命に努力しませんでしたが)。

以下の例は、あなたが望むことをするはずです。私Sheet2!A1はファイル名に使用しましたAK545が、コード例のが何のためのものかわかりませんでした。

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
于 2013-03-12T13:16:48.273 に答える