はオプションです、あなただけのDuplicateToNewWBプロシージャにあなたの範囲を渡します
Public Function WorksheetExists(wbSource As Workbook, strWorksheet As String) As Boolean
Dim intIndex As Integer
On Error GoTo eHandle
intIndex = Worksheets(strWorksheet).Index
WorksheetExists = True
Exit Function
eHandle:
WorksheetExists = False
End Function
Public Sub DuplicateToNewWB(rngSource As Range)
Dim wbTarget As Workbook 'The new workbook
Dim rngItem As Range 'Used to loop the passed source range
Dim wsSource As Worksheet 'The source worksheet in existing workbook to read
Dim wsTarget As Worksheet 'The worksheet in the new workbook to write
Set wbTarget = Workbooks.Add
For Each rngItem In rngSource
'Assign the source worksheet to that of the current range being copied
Set wsSource = rngItem.Parent
'Assign the target worksheet
If WorksheetExists(wbSource:=wbTarget, strWorksheet:=wsSource.Name) Then
Set wsTarget = wbTarget.Worksheets(wsSource.Name)
Else
Set wsTarget = wbTarget.Worksheets.Add
wsTarget.Name = wsSource.Name
End If
'Copy the value
wsTarget.Range(rngItem.Address) = rngItem
Next
'Cleanup
Set rngItem = Nothing
Set wsSource = Nothing
Set wsTarget = Nothing
Set wbTarget = Nothing
End Sub
出典
2016-11-03 18:03:44
Joe
あなたは何を試してみましたか?この質問はさまざまな形で求められているので、特にSOの周りを検索してください。あなたが見つけたもの、成功したもの、失敗したもの、またはあなたが持っているコードで特定の質問を表示してください。 – BruceWayne
私は現在使用しています: ワークシート( "シート名を")範囲( "A7:S1000")。。コピー 設定newWB = Workbooks.Add newWB 設定ニュース= newWB.Sheets( "シート1") ニュースを。範囲: "A3"。PasteSpecial Paste:= xlPasteValues、Operation:= xlNone newS.Range( "A3")PasteSpecialペースト:= xlPasteFormats、操作:= xlNone、_ SkipBlanks:= False、Transpose:= False 最後に 私はコピーの配列を実行しようとしましたが、複数の範囲で機能するようにはできません。私はまた、保存されている新しいwbやあらかじめ参照されているwbを参照していないものは見つけられませんでした。 – JonnySweatpants
(そのコードをOPに親切に編集し、コードタグ( '{}')を使用してフォーマットすることはできますか?ありがとう!) – BruceWayne