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

如何将格式和公式从一个Excel区域复制到另一个Excel区域?,excel,vb.net,excel-interop,Excel,Vb.net,Excel Interop,我的情况: 我有一段代码可以将数据库中的数据复制到Excel工作表中,让我们看一下这段代码 RangeExcelData(objWorkbook.Worksheets.Item("DATA").Range("D71"), rptLotNo) 简而言之,RangeExcelData是我的VB.NET应用程序中的一个用户定义函数,它允许我将变量数据复制到Excel中的一个范围中 我的代码中有很多这样的内容,必须将整个数据从数据库复制到一张表中 我还有一个格式化的Excel工作表,我把数据库中的数

我的情况:

我有一段代码可以将数据库中的数据复制到Excel工作表中,让我们看一下这段代码

 RangeExcelData(objWorkbook.Worksheets.Item("DATA").Range("D71"), rptLotNo)
简而言之,RangeExcelData是我的VB.NET应用程序中的一个用户定义函数,它允许我将变量数据复制到Excel中的一个范围中

我的代码中有很多这样的内容,必须将整个数据从数据库复制到一张表中

我还有一个格式化的Excel工作表,我把数据库中的数据放在那里。我想知道的是,我是否可以将格式化的Excel工作表中的格式复制到工作表中的某个空间中

下面是我想要的一个小说明,这是格式化的excel,例如:

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


假设原始值从
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中做同样的事情。

我理解正确了吗,如果我复制公式,相应的引用也会被复制?我的意思是,如果每列下都有一个公式,可能是第3行,那么我可以复制第3行中的公式?我不确定你的意思,但如果第一列中的公式类似于
=SUM(B3:B6)
,那么第四列(第二个表中的第一列)的公式将是
=SUM(E3:E6)
。当然,除非你有类似于
$B$3:$B$6:
的东西,否则参考资料将保持不变。这正是我的意思,谢谢你的理解,如果我把你弄糊涂了,请原谅。一点也不,很高兴我能帮上忙!如果您还有任何问题,请告诉我。请问,我可以通过变量控制范围的值吗?假设范围是
.range(“B2:D7”)。
但我想在其中添加15个单元格,通过变量本身移动它,你知道如何通过编程而不是硬编码来实现吗?