微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查另一个关闭的工作簿中的值

如何解决检查另一个关闭的工作簿中的值

我在同一文件夹路径中有一个 excel 文件名称(测试 1)。 它在“C3”范围内的(“Sheet1”)上有一个值。 我想在不打开工作簿的情况下检查这个值。

Sub Check()

Application.ScreenUpdating = False
Application.displayStatusBar = False
Application.EnableEvents = False

Dim mydata As String
Dim wb As Workbook

Set wb = Workbooks.Open(ThisWorkbook.Path & "\test1.xlsx")
If wb.Worksheets("Sheet1").Range("C3").Value = "a9a" <> Empty Then
        
       MsgBox "The value is correct",64
       
       Else
       
myError:

       MsgBox "The value is incorrect",64

     End If

Application.ScreenUpdating = True
Application.displayStatusBar = True
Application.EnableEvents = True

End Sub

解决方法

您可以使用 ADO(参见 https://docs.microsoft.com/en-us/previous-versions/office/troubleshoot/office-developer/transfer-excel-data-from-ado-recordset)快速读取另一个工作簿中的数据而无需打开它。工作样本:

Option Explicit

Sub Check()
    Dim con As Object,rst As Object,tFilePath As String
    
    Set rst = CreateObject("ADODB.Recordset")
    Set con = CreateObject("ADODB.Connection")
    
    tFilePath = ThisWorkbook.Path & "\test1.xlsx"
    
    con.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
             "Data Source=" & tFilePath & ";" & _
             "Extended Properties='Excel 12.0;HDR=NO';"
    rst.Open "SELECT * FROM [Sheet1$C3:C3]",con,3,1

    If rst.Fields(0).Value = "a9a" Then
           MsgBox "The value is correct",64
    Else
           MsgBox "The value is incorrect",64
    End If
         
    rst.Close: Set rst = Nothing
    con.Close: Set con = Nothing
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?