- Tham gia
- 30/5/06
- Bài viết
- 1,798
- Được thích
- 4,706
- Giới tính
- Nam
Nguồn tại đây.
Copy một vùng từ một tập tin Excel (đóng) (Closed Workbook)
Tập tin này có thể ở mạng thư mục trên mạng nội bộ, hoặc trên internet.
Tất cả các ví dụ đều dùng macro GetRange.
Với macro này bạn có thể lấy nội dung từ:
Sau đây là các links hữu ích liên quan đến vấn đề này :
Có 5 đối số cho macro là:
Chú ý: Ở đây chưa có đoạn mã bẫy lỗi trong trường hợp tập tin hay tên sheet không tồn tại.
Ví dụ 1.
Ví dụ 2.
Ví dụ 3.
Thủ tục chính:
Copy một vùng từ một tập tin Excel (đóng) (Closed Workbook)
Tập tin này có thể ở mạng thư mục trên mạng nội bộ, hoặc trên internet.
Tất cả các ví dụ đều dùng macro GetRange.
Với macro này bạn có thể lấy nội dung từ:
- Tập tin trên internet (giả sử trên một site nào đó).
- Tập tin trên một thư mục trong mạng nội bộ.
- Tập tin trên một thư mục của máy thực hiện macro này.
Sau đây là các links hữu ích liên quan đến vấn đề này :
Có 5 đối số cho macro là:
- Đường dẫn (Path)
- Tên tập tin (File name)
- Tên sheet nguồn (Source sheet name)
- Vùng nguồn (Source range)
- Sheet đích (Destination sheet/range)
Chú ý: Ở đây chưa có đoạn mã bẫy lỗi trong trường hợp tập tin hay tên sheet không tồn tại.
Ví dụ 1.
Mã:
Sub File_On_Website()
Application.ScreenUpdating = False
On Error Resume Next
'Call the macro GetRange
GetRange "http://www.rondebruin.nl/files", "test1.xls", "Sheet1", "A1:B100", _
Sheets("Sheet1").Range("A1")
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
Mã:
Sub File_In_Network_Folder()
Application.ScreenUpdating = False
On Error Resume Next
'Call the macro GetRange
GetRange "\\Jdb\shareddocs", "test2.xls", "Sheet1", "A1:B100", _
Sheets("Sheet1").Range("A1")
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
Mã:
Sub File_In_Local_Folder()
Application.ScreenUpdating = False
On Error Resume Next
'Call the macro GetRange
GetRange "C:\Data", "test3.xls", "Sheet1", "A1:B100", _
Sheets("Sheet1").Range("A1")
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
Thủ tục chính:
Mã:
Sub GetRange(FilePath As String, FileName As String, SheetName As String, _
SourceRange As String, DestRange As Range)
Dim Start
'Đi đến vùng đích (destination)
Application.Goto DestRange
'Thay đổi kích thước vùng DestRange cho giống với vùng SourceRange
Set DestRange = DestRange.Resize(Range(SourceRange).Rows.Count, _
Range(SourceRange).Columns.Count)
'Thêm công thức links đến tập tin đóng này
With DestRange
.FormulaArray = "='" & FilePath & "/[" & FileName & "]" & SheetName _
& "'!" & SourceRange
'Chờ
Start = Timer
Do While Timer < Start + 2
DoEvents
Loop
'Chuyển các giá trị từ công thức
.Copy
.PasteSpecial xlPasteValues
.Cells(1).Select
Application.CutCopyMode = False
End With
End Sub
Lần chỉnh sửa cuối: