Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用“单元格”属性将范围从一个工作表复制到另一个工作表_Vba_Excel_Copy_Paste - Fatal编程技术网

Vba 使用“单元格”属性将范围从一个工作表复制到另一个工作表

Vba 使用“单元格”属性将范围从一个工作表复制到另一个工作表,vba,excel,copy,paste,Vba,Excel,Copy,Paste,我试图将一个范围从一个工作表复制到另一个工作表。我有多个范围,我想复制并粘贴在新工作表的各个点上(例如,我想将第一个范围粘贴到D3,然后将下一个范围粘贴到E12,等等),因此我使用cells属性来描述该范围。但是,出于某种原因,当我使用单元格格式而不是仅仅输入字符串来描述要粘贴到新工作表中的范围时,它不起作用 这行代码确实有效: Sheets("Sheet1").Range(Cells(2, 3), Cells(10, 3)).Copy _ Destination:=Sheets("Shee

我试图将一个范围从一个工作表复制到另一个工作表。我有多个范围,我想复制并粘贴在新工作表的各个点上(例如,我想将第一个范围粘贴到D3,然后将下一个范围粘贴到E12,等等),因此我使用cells属性来描述该范围。但是,出于某种原因,当我使用单元格格式而不是仅仅输入字符串来描述要粘贴到新工作表中的范围时,它不起作用

这行代码确实有效:

Sheets("Sheet1").Range(Cells(2, 3), Cells(10, 3)).Copy _
  Destination:=Sheets("Sheet2").Range("D3")
但这一条没有:

Sheets("Sheet1").Range(Cells(2, 3), Cells(10, 3)).Copy _
  Destination:=Sheets("Sheet2").Range(Cells(3,4))

当我运行后一行代码时,我得到一个“运行时错误1004:应用程序定义的或对象定义的错误”。这是为什么?我如何修复它?

您指定的是范围的父级,而不是单元格的父级。简而言之,您正在尝试定义一系列包含图纸2上的单元格的图纸1上的单元格和/或反之亦然

dim ws2 as worksheet
set ws2 = sheets("Sheet2")

with sheets("Sheet1")
    .Range(.Cells(2, 3), .Cells(10, 3)).Copy _
      Destination:=ws2.Range(ws2.Cells(3,4))
end with
前缀周期(也称为
或句号)意味着
.Range
.Cells
的父项是用。为了缩短在Sheet2上正确定义范围所需的代码,我分配了一个工作表类型变量,并使用它来显示范围和单元格的父级


FWIW,
ws2.Range(ws2.Cells(3,4))
是冗余的<代码>ws2。单元格(3,4)就足够了。

另一个很好的理由是永远不要使用隐式引用。+++很好地解释:)你今天很火:)