gpt4 book ai didi

excel - 无法使用目标复制将一个单元格复制到另一个单元格

转载 作者:行者123 更新时间:2023-12-04 22:24:53 25 4
gpt4 key购买 nike

Range("A1").Copy (Range("E5"))

那失败了,但是如果我将目标范围明确定义为目标,如下所示,它可以工作。
Range("A1").Copy Destination:=Range("E5")

如果我为我的目的地提供工作表引用,如下所示,它也可以:
Range("A1").Copy (Worksheets("Sheet1).Range("E5"))

为什么最简单的形式,不起作用,给我

Runtime Error 1004: "Copy method of Range class failed"



反而?

最佳答案

和...之间的不同

Range("A1").Copy (Range("E5"))


Range("A1").Copy Range("E5")

是第一个转换 ByRef参数到 ByVal而第二个没有。这里的括号代表转换,而不是您所期望的。

请注意,您必须仅在使用函数(返回值)时使用括号,但 不是 使用过程时。

例子
a = MyFunction(Parameter1, Parameter2)   'correct with parenthesis
MyProcedure Parameter1, Parameter2 'correct w/o parenthesis

a = MyFunction Parameter1, Parameter2 'it will error
MyProcedure(Parameter1, Parameter2) 'it will error

现在只有一个参数
a = MyFunction(Parameter1)   'correct with parenthesis
MyProcedure Parameter1 'correct w/o parenthesis

a = MyFunction Parameter1 'it will error
MyProcedure (Parameter1) 'it will NOT error but convert ByRef into ByVal !!!

上述示例的最后一行所做的事情与您预期的完全不同。您可以注意到过程名称和括号之间的额外空格。和下面的语法一样
a = MyFunction((Parameter1), (Parameter2))   'convert ByRef into ByVal
MyProcedure (Parameter1), (Parameter2) 'convert ByRef into ByVal

所以我们可以记下:
  • 如果一个函数返回一个我们想要写入变量的值:
    必须使用括号:a = MyFunction(Parameter1)
  • 如果一个过程(或函数)执行 不是 然后返回一个值:
    不得使用括号:MyProcedure Parameter1
  • 关于excel - 无法使用目标复制将一个单元格复制到另一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58864512/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com