【问题标题】:Read the cell value without opening the workbook [duplicate]在不打开工作簿的情况下读取单元格值[重复]
【发布时间】:2017-10-04 09:54:39
【问题描述】:
Set ObjWB = Workbooks.Open("c:\Test.xlsx")

如果我使用workbooks.open 命令,则会打开该 Excel 工作簿。

我需要在不打开 Excel 工作簿的情况下读取单元格值。

【问题讨论】:

  • 不打开文件就无法读取文件。但是您可以打开该文件,读取您需要的值并关闭它。
  • 如果您确实需要它,请搜索“indirect.ext”。我个人会打开工作簿,检索值,关闭工作簿。
  • 感谢 Peh 和 Zerk 的建议

标签: vba excel


【解决方案1】:

ReadFromClosedWorkbook(工作簿和工作表)中设置参数后运行子GetValue。您可以将它们中的一个或两个作为参数从调用过程中传递。

Sub GetValue()
    Debug.Print ReadFromClosedWorkbook("A1")
End Sub

Private Function ReadFromClosedWorkbook(Target As String) As Variant

    Const WbFullName = "D:\My Documents\Your file name.xlsx"

    Dim PathName As String
    Dim WbName As String
    Dim WsName As String
    Dim Target As String
    Dim Sp() As String

    WsName = "My Worksheet's Name"

    Sp = Split(WbFullName, "\")
    WbName = Sp(UBound(Sp))
    ReDim Preserve Sp(UBound(Sp) - 1)
    PathName = Join(Sp, "\") & "\"
    If Len(Dir(WbFullName)) Then
        Target = "'" & PathName & _
                 "[" & WbName & "]" & WsName & _
                 "'!" & Range(Target).Address(True, True, xlR1C1)
        ReadFromClosedWorkbook = ExecuteExcel4Macro(Target)
    End If
End Function

【讨论】:

  • 我得到了答案,我已经添加了 GetObject 函数来读取单元格值而不打开工作簿例如:Set ObjWB = GetObject("c:\Test.xlsx")
  • 感谢您的建议
  • 运行此代码时出现对象错误?
猜你喜欢
  • 2018-05-08
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多