我发现了这段代码,并认为如果我只需要从封闭表中提取一个值,那可能会很好用。

strInfoCell = "'" & strPath & "[" & strFile & "]Sheet1'!R3C3"
myvalue = ExecuteExcel4Macro(strInfoCell)


当我运行此代码时,我得到一个strinfocell的值

'C:\Users\my.name\Desktop[QOS DGL stuff.xlsx]Sheet1'!R3C3

但是,当我运行代码时,会弹出一个对话框,显示带有“ QOS DGL suff”的桌面文件。

是什么原因造成的,为什么它不只是按预期方式拉回数据?

我知道路径和文件名是正确的,因为如果我从调试输出中复制它们并将其粘贴到start>>run中,则会打开正确的工作表。

我知道Sheet1(名为:ACL)在cells(3,3)中确实有一个值

最佳答案

这取决于您如何使用它。正在显示打开文件对话框,因为“ strPath”结尾没有“ \”;)
试试这个代码。有用
历经考验

Option Explicit

Sub Sample()
    Dim wbPath As String, wbName As String
    Dim wsName As String, cellRef As String
    Dim Ret As String

    'wbPath = "C:\Documents and Settings\Siddharth Rout\Desktop\"
    wbPath = "C:\Users\my.name\Desktop\"

    wbName = "QOS DGL stuff.xls"
    wsName = "ACL"
    cellRef = "C3"

    Ret = "'" & wbPath & "[" & wbName & "]" & _
          wsName & "'!" & Range(cellRef).Address(True, True, -4150)

    MsgBox ExecuteExcel4Macro(Ret)
End Sub

10-08 03:31