将值从一个工作表复制到另一个工作表文件

前两行,我有它循环复制到另一个文件完整的工作表。这是好的,因为我想要的格式,但不是链接回到原来的文件,它只从值复制只。 第二部分被注释掉了,因为它只会复制这些值。但是我希望格式被复制,因为它的前两行只有值。 我怎么能结合这..我看了其他的例子,我似乎无法得到一个工作的答案。 谢谢

xlWorksheetSource = xlWorkbookSource.Sheets(sheet.Name) xlWorksheetSource.Copy(After:=xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count)) 'xlWorksheetSource.UsedRange.Copy() 'xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() 'xlWorkDestSource.UsedRange._PasteSpecial(XlPasteType.xlPasteValues, XlPasteSpecialOperation.xlPasteSpecialOperationNone, False, False) 'xlWorkDestSource.Name = sheet.Name 

这将工作来粘贴单元格格式和值:

 xlWorksheetSource.UsedRange.Copy() xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() xlWorkDestSource.Range("A1").PasteSpecial xlPasteAllUsingSourceTheme xlWorkDestSource.Range("A1").PasteSpecial xlPasteValues 

如果你只需要值和数字格式,你可以这样做:

 xlWorksheetSource.UsedRange.Copy() xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() xlWorkDestSource.Range("A1").PasteSpecial xlPasteValuesAndNumberFormats 

更新

要使用合并的单元格,这将工作。 可能有更好/更快的方法

 xlWorksheetSource = xlWorkbookSource.Sheets(sheet.Name) xlWorksheetSource.Copy(After:=xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count)) xlWorkDestSource = xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count) For each cel in xlWorkDestSource.UsedRange cel.MergeArea.Value = cel.MergeArea.Value Next 

*请注意,我没有资格任何对象,因为你没有在你的代码中,但它绝对是一个最佳实践。