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

How to copy formatting and formulas from an Excel range into another?

我的情况:

我有一段代码将数据从数据库复制到Excelsheet,让我们把这段代码

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

简而言之,RangeExcelData 是我的 VB.NET 应用程序中的一个用户定义函数,它允许我将可变数据复制到 Excel[=14 中的范围内=]

我的代码中有很多这样的东西,必须将整个数据从数据库复制到 sheet。

我还有一个格式化的 Excel 作品sheet,我把数据库中的数据放在那里。我想知道的是,我可以将格式从格式化的 Excel worksheet 复制到 worksheet 中的 space 中吗?

这是我想要的一个小例子,这是格式化的 excel 例如:

如果数据超过了Excel,我要VB.NET把格式复制到旁边的space。包括它可能有的公式:

假设您的原始值从 B2 开始并在 D7 结束,您可以这样做:

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

注意:因为您也在复制公式(不仅仅是格式),任何已修复 值(如果有)也将被复制,但这无关紧要,因为您将用新值覆盖它们。

结果:

如果您不想复制固定值,您可以查看中的答案。这是关于 VBA,但你可以在 VB.NET.

中做同样的事情