如何将格式和公式从Excel范围复制到另一个范围?

时间:2018-08-23 02:59:40

标签: excel vb.net excel-interop

我的情况:

我有一段代码将数据从数据库复制到Excel工作表中,让我们采用此代码

 RangeExcelData(objWorkbook.Worksheets.Item("DATA").Range("D71"), rptLotNo)

简而言之,RangeExcelData是我的VB.NET应用程序中的一个用户定义函数,可让我将变量数据复制到Excel中的某个范围

我的代码中有很多内容,必须将数据库中的整个数据复制到一个工作表中。

我还有一个格式化的Excel工作表,我将数据库中的数据放入其中。我想知道的是,我可以将格式化的Excel工作表中的格式复制到工作表中的空白处吗?

以下是我想要的例子,例如格式化的excel:

This is the formatted Excel for example

如果数据超出Excel,我希望VB.NET将格式复制到它旁边的空间。包括它可能具有的公式:

enter image description here

1 个答案:

答案 0 :(得分:0)

假设您的原始值从B2D7结束,则可以执行以下操作:

Dim xlSheet As Excel.Worksheet = objWorkbook.Worksheets("DATA")
With xlSheet
    .Range("B2:D7").Copy()
    .Range("E2:G7").PasteSpecial(Excel.XlPasteType.xlPasteFormats)
    .Range("E2:G7").PasteSpecial(Excel.XlPasteType.xlPasteFormulasAndNumberFormats)

    ' Start adding the new values.
    .Range("E3:E6").Value = 4
    .Range("F3:F6").Value = 5
    .Range("G3:G6").Value = 6
End With

注意:由于您也要复制公式((不仅是格式) ,因此任何固定的值(如果有)都将也可以复制,但这没关系,因为您将用新值覆盖它们。

结果:

Result

如果您不希望复制固定值,则可以检查this question中的答案。这是关于VBA的,但是您可以在VB.NET中做同样的事情。