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

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

于 2012-05-31T20:50:11.253 回答