如何以编程方式双击VBA / Excel中的单元格?

时间:2016-03-21 04:52:22

标签: excel vba excel-vba

我有一张Excel表单,其中包含的公式仅在双击它所在的单元格时进行评估。我一直在尝试在打开的工作簿事件中编写一些代码,触发双击或VBA等效的双击以强制评估此单元格的公式,但无法找到有效的任何内容。 我试过了:

Application.Evaluate("I2")

^什么都不做

With Range("I2")
            .Value = .Value
End With

^也什么都不做

Dim doubleClick As Variant
doubleClick = Application.WorksheetFunction.DfsCell("TimeSeries", 7.27, Chr(34) & "IRESS_UPDATE!$B$5:$B$36" & Chr(34), 2, , , , , , Chr(34) & "IRESS_UPDATE!$A$2" & Chr(34), Chr(34) & "IRESS_UPDATE!$B$2" & Chr(34), True, 0, False, True, "10:00:00", "16:00:00", 5, "0*5")

^给出运行时错误'':对象不支持此属性或方法

有谁知道如何模拟双击单元格?

2 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,下面的代码强制评估第三方加载项的功能,在这种情况下是澳大利亚金融市场软件IRESS,但我看过很多加载项的例子: / p>

Sub AutoUpdateIRESSData()
    Range("I2").Select
    Application.Run "'ddeiress.xla'!Execute"
End Sub

我在Workbook_Open事件中添加了对上述子例程的引用,并在打开工作簿时成功重新评估了这些函数。

答案 1 :(得分:-1)

这是否有效,将工作表子更改为公共而非私有?

Option Explicit

Sub test()

    Dim shToCall As Sheet1

    Set shToCall = Sheet1

    shToCall.Worksheet_BeforeDoubleClick Range("a1"), False

End Sub