将工作表集复制到另一个工作簿

时间:2012-05-31 20:39:12

标签: excel vbscript

我想将工作簿中的一些工作表复制到另一个工作簿中。我不希望从我的源工作簿中复制任何公式或链接。我只需要数据。我想用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

1 个答案:

答案 0 :(得分: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

唯一的问题是确保新工作簿中有足够的工作表。您可以写一张支票,查看有多少张,如果我是&gt;然后在复制前添加一张纸。