VB.net将excel单元复制并粘贴到工作簿中的其他地方

时间:2019-04-03 15:11:05

标签: vb.net

所以我目前正在使用Visual Studio创建一个应用程序,该应用程序将信息从excel工作表中取出,然后对数据进行一些计算,然后再推回excel。

我设法做到了这一点,但是我苦苦挣扎的事情是使用“参数”表。我希望能够在工作簿的一个工作表的单元格中输入公式,然后将该公式粘贴到另一工作表中,但要对其进行更新,例如随着单元格下降,公式会像在excel中一样发生变化。我通过对公式进行硬编码然后使用变量作为行号来进行手动处理,但是我希望能够仅在excel工作表中更改公式,然后在代码运行时将其应用于其余部分。

目前,我尝试将单元格值/文本保存到变量中,然后使新单元格等于该变量,但是,这随后将相同的公式应用于整个列(所有必需的行)。

我当前要执行的操作是将变量粘贴到第一行,然后将该单元格复制并粘贴到最后一个单元格,

我尝试使变量成为公式,但是它在等于变量之前先对公式求值,因此将所有新单元格设置为公式答案,因此我将单元格更改为文本,这就意味着公式确实出现在新单元格中,但是所有单元格的公式相同。

复制代码如下所示

bjExcel.cells(rown, colval) = param1
objExcel.cells(rown, colval).copy

这很好

但是当我使用下面的内容时,粘贴将无效

Do Until rown = 10
objExcel.cells(rown, colval).copy
rown = rown + 1
objExcel.cells(rown, colval).paste

无法识别粘贴错误:

  

System.MissingMemberException:类型上的“公共成员”粘贴”   找不到“ ApplicationClass”。

2 个答案:

答案 0 :(得分:0)

您是否需要改用PasteSpecial?

https://docs.microsoft.com/en-us/office/vba/api/excel.range.pastespecial

取决于您用来与excel互操作的内容。

答案 1 :(得分:0)

shWorkSheet.Range(“ C7:C7”)。Copy() shWorkSheet.Range(“ V7:V7”)。PasteSpecial(Excel.XlPasteType.xlPasteAll)