2017-05-30 4 views
1

データを含むワークシートを持つワークブックに、色、ドロップダウン(ドロップダウン選択セルの色の変更)などの書式設定が含まれています。私は特定のワークシートのコピーを作成し、簡単な右クリックを使用してそれを送信しようとしていましたが、コピーを作成するがテキスト値に基づいてセルの色を持たない新しいワークブックにコピーを作成しています。これまでは、同じ結果が出てくる別のVBコードを使ってやってみました。つまり、新しいワークブックを作成してデータを貼り付けますが、フォーマットはしません。私は以下のコードを使用して試してみました:ワークブックを新しいブックとしてフォーマット、ドロップダウンリストなどをコピーする

Sub CopySheetToNewWorkbook1() 

    Dim wname As String 

    wname = ActiveCell.Value 

    Sheets(wname).Cells.Copy 

    Set nbook = Workbooks.Add(1) 
    With nbook.Sheets(1) 
    .Cells.PasteSpecial xlValues 
    .Cells.PasteSpecial xlFormats 
    End With 

    Range("a:l").EntireColumn.AutoFit 
End Sub 

別の試み:

Sub CopySheetToNewWorkbook2() 
    Dim wname As String 

    wname = ActiveCell.Value 
    Sheets(wname).Activate 
    Range("a1:l25").Copy 
    Set nbook = Workbooks.Add(1) 
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False 
    Range("a:l").EntireColumn.AutoFit 
End Sub 

私はこの1つは、すべての書式を保持してワークブックを保存するように動作しますと思ったが、再び、それは役に立たないようになりました。 (「オブジェクトのワークブックが失敗する方法を付けて保存」また、それは救わコピーを作成することができなかったが、エラーMSGを思い付いた):

Sub CopySheetToNewWorkbook3() 

    Dim wname As String 

    wname = ActiveCell.Value 
    Sheets(wname).Copy 

    ActiveWorkbook.SaveAs "C:\Data:\Roster.xlsx", FileFormat:=51 
End Sub 

最後の試み私はあきらめて、助けを求めることを決めた前に(私はかなり私は新しいワークブックに、過去を参照しない方法を知りませんでしたこの1に - 絶対失敗:

Sub CopySheetToNewWorkbook4() 
    Dim wname As String 
    wname = ActiveCell.Value 

    Set nbook = Workbooks.Add 
    Sheets(wname).Copy before:=Workbook.nbook.seehts(1) 
    With nbook.Sheets(1).UsedRange 
    .Value = .Value 
    End With 
End Sub 

私は私が見つけることができるすべての可能な支援をしようとしてきたように、私は正しい方向に尖っ得ることができることを望みます

+0

私は上記のすべての試みでそれを追加したいと思います。いくつかの細胞の細胞色ではあるが、それらのすべてではない。 – vj12

+0

(a)これらすべての試みで、マクロが呼び出された時点のアクティブなセルの値が、コピーされるシートの名前であると仮定します。 (b) 'CopySheetToNewWorkbook4'では' Workbook.nbook.seehts(1) 'というビットは' nbook.Sheets(1) 'でなければ意味がありませんが、' Sheets(wname) 'は新しいブックには存在しませんコピーは機能しません。 (c) 'CopySheetToNewWorkbook3'に無効なファイル名があります。パスにはドライブとパスの間のセパレータ用に予約されている': 'が含まれていません。 – YowE3K

+0

@ YowE3Kはい、私はワークシート名とすべてのワークシートのリストがワークシート名リスト(activecell.value)によって参照されるブックに存在します。 – vj12

答えて

0

これは次のようになります。

01新規ブックへ
  • コピーシート
  • 新しいブックを保存するには、新しいブック
  • コントロールを閉じ、標準モジュールでは、元のブックへ

を返します。

Sub Macro1() 
Sheets("Sheet1").Copy 
ActiveWorkbook.SaveAs _ 
    Filename:="C:\Users\garys\Desktop\newname.xlsm", _ 
    FileFormat:=xlOpenXMLWorkbookMacroEnabled, _ 
    CreateBackup:=False 
ActiveWorkbook.Close 
End Sub 
+0

これはありがたいですが、私には同じ出力が得られます - すべてのデータを含む新しいブックを作成しますが、セル内の色をコピーすることはできません(ドロップダウンで選択されたテキストに基づいています。 – vj12

関連する問題