VBA:无法在另一张表中引用Range

时间:2016-11-11 18:05:40

标签: excel-vba paste vba excel

这是我的第一篇文章,所以请提供有关我提出问题的方法的任何反馈。

我正在构建一个子(最终)应该将范围从一张(#34; Sandbox")复制到另一张(" Master")。步骤是:

  • 识别所选行
  • 循环浏览Sandbox行,确定是否要在Master中找到匹配的Master行或添加为新的结束行
  • 仅将从每个选定的沙盒行复制到相应的主行

错误会弹出设置PasteSpecial函数的范围。该行始终提供" 1004(方法'范围'对象' _Global'失败"消息。

以下是代码:

Range(sheetMaster.Cells(targetRow, targetColumn)).PasteSpecial xlPasteValues

错误发生在最后一行:

Range(Cells(thisrow.Row, sourceColumn1), Cells(thisrow.Row, sourceColumn2)).Copy _
  Destination:=Range(sheetMaster.Cells(targetRow, targetColumn))

令人费解的是,以下似乎有效:

(n {height:100})
 |
(n)
 |
(n)
 |
(n)
 |
(n)

不幸的是,我只想要价值观;带来公式和格式会搞砸工作表中的其他行为。

我尝试了很多变化,但基本上它不允许我创建一个范围,引用Master,如果我使用Cells()。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

只是做:

sheetMaster.Cells(targetRow, targetColumn).PasteSpecial xlPasteValues

如果sheetMaster在运行时不是ActiveSheet,则可能发生错误:

Range(sheetMaster.Cells(targetRow, targetColumn).PasteSpecial) xlPasteValues

另请注意,对于此问题:

  

不幸的是,我只想要价值观;带来公式和格式会搞砸工作表中的其他行为。

您可以将范围.Value作为数组获取,并将其直接写入另一个工作表,而无需调用CopyPaste/PasteSpecial方法。下面的答案显示了从一个工作簿复制/粘贴到另一个工作簿的几种方法,但可以很容易地修改为工作表到纸张传输。

Copy from one workbook and paste into another