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

标签 excel vba

我在 A1 中有一个带有调用 UDF 的 HYPERLINK 公式的单元格:

=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 运行正常。

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

最佳答案

Copy似乎不起作用,但如果符合您的要求,直接值(value)转移确实有效。

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 Guindonpointing that out。)

关于excel - 从公式运行的宏不会复制/粘贴,但通过 vbe 运行它可以正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55962644/

相关文章:

excel - 如何在Excel中编辑图表的图例条目?

vba - 同一个文件在两台不同的计算机上怎么会得到不同的结果呢?

ms-access - 将 Excel 列表对象导入 Access 表

vba将条件传递给变量中的countif

vba - 对象 'Value' 的方法 'Range' 失败

vba - 测试属性名称是否存在

vba - 使用 VBA 在 Excel 中禁用文件>共享

excel - 区域中最后使用的单元格 - Excel 2013

excel - 如何使用 "pagination"单击网络中的某个页面?

vba - PasteSpecial 仅值