Khi lang thang trên Internet tìm hiểu về vấn đề tạo liên kết động đến file đóng mình tìm được hàm pull của tác giả Harlan Grove
Hàm này có thể tham chiếu đến dữ liệu của file đang đóng.
Mình gửi lên ai cần thì dùng nhé.
Trong đó tham số xref có dạng
"'" & đường dẩn & "[" Tên file & "]" & Tên sheet & "'!" & địa chỉ cell
Hàm này có thể tham chiếu đến dữ liệu của file đang đóng.
Mình gửi lên ai cần thì dùng nhé.
Mã:
Function pull(xref As String) As Variant
'inspired by Bob Phillips and Laurent Longre
'but written by Harlan Grove
'-----------------------------------------------------------------
'Copyright (c) 2003 Harlan Grove.
'
'This code is free software; you can redistribute it and/or modify
'it under the terms of the GNU General Public License as published
'by the Free Software Foundation; either version 2 of the License,
'or (at your option) any later version.
'-----------------------------------------------------------------
Dim xlapp As Object, xlwb As Workbook
Dim b As String, r As Range, c As Range, n As Long
pull = Evaluate(xref)
If CStr(pull) = CStr(CVErr(xlErrRef)) Then
On Error GoTo CleanUp 'immediate clean-up at this point
Set xlapp = CreateObject("Excel.Application")
Set xlwb = xlapp.Workbooks.Add 'needed by .ExecuteExcel4Macro
On Error Resume Next 'now clean-up can wait
n = InStr(InStr(1, xref, "]") + 1, xref, "!")
b = Mid(xref, 1, n)
Set r = xlwb.Sheets(1).Range(Mid(xref, n + 1))
If r Is Nothing Then
pull = xlapp.ExecuteExcel4Macro(xref)
Else
For Each c In r
c.Value = xlapp.ExecuteExcel4Macro(b & c.Address(1, 1, xlR1C1))
Next c
pull = r.Value
End If
CleanUp:
If Not xlwb Is Nothing Then xlwb.Close 0
If Not xlapp Is Nothing Then xlapp.Quit
Set xlapp = Nothing
End If
End Function
"'" & đường dẩn & "[" Tên file & "]" & Tên sheet & "'!" & địa chỉ cell