公园管理处事业编待遇:转贴:EXCEL VBA从关闭的工作薄中取得某一工作表某一单元格数值

来源:百度文库 编辑:中财网 时间:2024/04/29 13:08:46
EXCEL VBA从关闭的工作薄中取得某一工作表某一单元格数值有点兴奋,今天不经意找到以前一直在找的一个EXCEL VBA功能,就是从关闭的工作薄中取得某一工作表某一单元格数值,以前做的时候都要先打开取数,再关闭,实在太麻烦了.

       网上别人写的代码共享如下:

Private Function GetValue(path, file, sheet, ref)
    ' 从关闭的工作薄返回值
    Dim arg As String
    '确定文件是否存在
    If Right(path, 1) <> "\" Then path = path & "\"
    If Dir(path & file) = "" Then
        GetValue = "File Not Found"
        Exit Function
    End If
    '创建公式
    arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
    '执行EXCEL4宏函数
    GetValue = Application.ExecuteExcel4Macro(arg)
End Function

'参数说明
'-----------------------------------------------------------------
'path:文件路径
'file:文件名称
'sheet:工作表名称
'ref: 单元格区域
'-----------------------------------------------------------------
Sub kk()
Range("a1").Value = GetValue("D:\", "book2.xls", "Sheet1", "b2")
End Sub

 

直接读取c:\test.xls(不打开)中sheet1.a1的值另一种参考代码 (比一楼的写法简单许多)
Sub TestGetValue()
str0 = "'C:\[test.xls]Sheet1'!R1C1"
MsgBox ExecuteExcel4Macro(str0)
End Sub