0

ブック内のいくつかのワークシートを別のブックにコピーしたいと思います。ソースワークブックから数式やリンクをコピーしたくありません。必要なのはデータだけです。これを実現するためにvbscriptを使用したいと思います。誰かが私にこれをするように導くことができますか?

これは、ワークシートのコピーを実行して機能させるための私の試みですが、残念ながら、数式もコピーします。

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts=False
Set objWorkbook1= objExcel.Workbooks.Open("SourceFile.xlsx")
set objWorkbook2=objExcel.Workbooks.Add
set sheetsToCopy=objWorkbook1.Sheets(Array("Sheet1","Sheet2","Sheet3"))
sheetsToCopy.Copy objWorkbook2.Sheets(1)
objWorkbook1.save
objWorkbook2.saveAs("TargetFile.xlsx")
objWorkbook1.close
objWorkbook2.close
objExcel.DisplayAlerts=True
set objExcel=nothing
4

1 に答える 1

1

交換してみてください

sheetsToCopy.Copy objWorkbook2.Sheets(1)

このようなもので:

i = 1
For each wks in sheetsToCopy
    If objWorkbook2.Sheets.Count < i Then objWorkbook2.Sheets.Add , objWorkbook2.WorkSheets(objWorkbook2.WorkSheets.Count)
    'adds new worksheet to end of file to keep sheet count in tact
    wks.Cells.Copy 
    With objWorkbook2.Sheets(i)
        .Range("A1").PasteSpecial -4163 '--> numeric constant for PasteValues
        .Name = wks.Name
    End With
    i = i + 1
Next

唯一の問題は、新しいワークブックに十分なシートがあることを確認することです。チェックを書いてシートの数を確認し、iが>の場合は、コピーする前にシートを追加します。

于 2012-05-31T20:50:11.253 に答える