从公式运行宏不会复制/粘贴,但通过vbe运行可以正常工作

时间:2019-05-03 02:42:48

标签: excel vba

我在A1中有一个单元格,其中的HYPERLINK公式称为UDF:

=HYPERLINK("#funcCopy()";"macro")

UDF只需将3个单元格复制并粘贴到另一个位置:

Public Function funcCopy()
    Set funcCopy = Selection

    Dim plan As Worksheet
    Dim copyrow As Range

    Set plan = ThisWorkbook.Sheets("Plan1")

    Set copyrow = plan.Range("A3:E3")
    copyrow.Copy plan.Range("A5")
    MsgBox "I'm actually working!"
End Function

但是当我单击超链接时,它只是不会复制/粘贴。我添加了MsgBox来验证该函数是否正在运行(就是!)。 通过VBE正常运行。

我对此无能为力。有什么我可以做的吗?

1 个答案:

答案 0 :(得分:2)

Copy似乎不起作用,但如果满足您的要求,则可以直接进行价值转移。

Public Function funcCopy() As Range
    Set funcCopy = Selection

    Dim plan As Worksheet
    Dim copyrow As Range

    Set plan = ThisWorkbook.Sheets("Plan1")

    Set copyrow = plan.Range("A3:E3")   
    plan.Range("A5:E5").Value = copyrow.Value

    MsgBox "I'm actually working!"
End Function

enter image description here

(进行编辑以使返回类型明确,功劳@Mathieu Guindon归功于pointing that out。)