Nhờ giúp đỡ đoạn code lấy dữ liệu từ file excel đang đóng (3 người xem)

  • Thread starter Thread starter khoavd@
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

khoavd@

Thành viên mới
Tham gia
2/1/13
Bài viết
28
Được thích
0
Mình biết chủ đề này đã thảo luận nhiều trên DĐ nhưng mình thấy lung tung quá và tìm hoài ko thấy chỗ mình cần nên lập thêm 1 topic mới nhờ giúp đỡ. Mình đang sử dụng đoạn code sau được chia sẻ trên dđ để lấy dữ liệu

PHP Code:
Function GetData(sFile As String, sSheet As String, sAddr As String)
Dim pLink As String, iR As Long, iC As Long, Arr
If Len(Dir(sFile)) Then
Arr
= Range(sAddr)
pLink = "'" & Replace(sFile, Dir(sFile), "[" & Dir(sFile) & "]") & sSheet & "'!"
For iR = 1 To Range(sAddr).Rows.Count
For iC = 1 To Range(sAddr).Columns.Count
Arr
(iR, iC) = ExecuteExcel4Macro(pLink & Range(sAddr).Cells(iR, iC).Address(, , 2))
Next iC
Next iR
GetData
= Arr
End
If
End Function

Sub Test()
Dim sFile As String, sSheet As String, sAddr As String
sFile
= ThisWorkbook.Path & "\Source.xls"
sSheet = "Sheet1"
sAddr = "A1:D100"
Range("A1:D12") = GetData(sFile, sSheet, sAddr)
End Sub

Tuy nhiên mình muốn thay file "source.xls" bằng file mà tên được nhập từ sheet "Data" ô G3 chẳng hạn (các file nằm cùng thư mục)

vd khi nhập vào ô G3 tên file là source1.xls thì lấy dữ liệu từ file source1.xls
khi nhập vào ô G3 tên file là source2.xls thì lấy dữ liệu từ file source2.xls
...

Xin cảm ơn mọi người!
 
Lần chỉnh sửa cuối:
Bạn sửa dòng này sFile = ThisWorkbook.Path & "\Source.xls"

thành sFile = ThisWorkbook.Path & "\" & Range("G3")

xem thế nào nha
 
Lần chỉnh sửa cuối:
.......................................................................................
Sub Test()
Dim sFile As String, sSheet As String, sAddr As String
sFile
= ThisWorkbook.Path & "\Source.xls"
sSheet = "Sheet1"
sAddr = "A1:D100"
Range("A1:D12") = GetData(sFile, sSheet, sAddr)
End Sub

Tuy nhiên mình muốn thay file "source.xls" bằng file mà tên được nhập từ sheet "Data" ô G3 chẳng hạn (các file nằm cùng thư mục)

vd khi nhập vào ô G3 tên file là source1.xls thì lấy dữ liệu từ file source1.xls
khi nhập vào ô G3 tên file là source2.xls thì lấy dữ liệu từ file source2.xls
...

Xin cảm ơn mọi người!
Thử thay dòng
Mã:
[B][B][B][COLOR=#0000BB]sFile [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]ThisWorkbook[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Path [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#DD0000]"\Source.xls" [/COLOR][/B][/B][/B]
thành
Mã:
[B][B][B][COLOR=#0000BB]sFile [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]ThisWorkbook[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Path [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#DD0000]"\"& Sheets("Data").Range("G3")[/COLOR][/B][/B][/B]
xem sao?
 
Bạn có thể sử giúp mình nhập tên file từ sheet "Data" ô G3 được ko?
Bạn làm theo bài #2 hoặc #3 điều Ok hết mà... rồi chạy code vậy thôi

Làm theo Bài #2 thì chạy code từ Sheet Data

Làm theo bài #3 thì đứng ở đâu cũng keo được hết

2 bài bạn chỉ nhập tên File vào G3 chạy code thôi
 
Lần chỉnh sửa cuối:
Bạn làm theo bài #2 hoặc #3 điều Ok hết mà... rồi chạy code vậy thôi

Làm theo Bài #2 thì chạy code từ Sheet Data

Làm theo bài #3 thì đứng ở đâu cũng keo được hết

2 bài bạn chỉ nhập tên File vào G3 chạy code thôi

Cảm ơn bạn kieu manh mình cập nhật ko kịp. Mình đã làm được, tuy nhiên trong file mình có một số dòng trống, khi lấy dữ liệu về thì các dòng này hiện số 0 ko biết có cách nào khắc phục ko. Có lẽ mình viết thêm 1 đoạn code để xóa những dòng "0" này sau khi lấy được dữ liệu?
 
Cảm ơn bạn kieu manh mình cập nhật ko kịp. Mình đã làm được, tuy nhiên trong file mình có một số dòng trống, khi lấy dữ liệu về thì các dòng này hiện số 0 ko biết có cách nào khắc phục ko. Có lẽ mình viết thêm 1 đoạn code để xóa những dòng "0" này sau khi lấy được dữ liệu?
Bởi vì vùng dữ liệu bạn lấy lên có ô trống nên nó mới hiển thị số o....
1/ xóa bằng tay
2/ xóa bằng code
3/ cách khác mình chưa nghĩ ra....+-+-+-+
 
Bởi vì vùng dữ liệu bạn lấy lên có ô trống nên nó mới hiển thị số o....
1/ xóa bằng tay
2/ xóa bằng code
3/ cách khác mình chưa nghĩ ra....+-+-+-+
đã xóa xong bằng code, sáng nay làm được nhiều việc quá. Thanks các bro rất nhiều /-*+/

Việc cuối, mình muốn xuất dữ liệu từ sheet "x" ra một file excel mới, bung lên màn hình, có khả thi ko nhỉ? /-*+//-*+//-*+/
(giống như file newbook.xls khi mới mở excel chưa lưu trên máy tính)
Bác kieu manh giúp mình nhé!
 
Lần chỉnh sửa cuối:
đã xóa xong bằng code, sáng nay làm được nhiều việc quá. Thanks các bro rất nhiều /-*+/

Việc cuối, mình muốn xuất dữ liệu từ sheet "x" ra một file excel mới, bung lên màn hình, có khả thi ko nhỉ? /-*+//-*+//-*+/
(giống như file newbook.xls khi mới mở excel chưa lưu trên máy tính)
Bác kieu manh giúp mình nhé!
Tìm trên GPE bài dạng đó quá nhiều
Ví dụ: Workbooks.Add
 
Lần chỉnh sửa cuối:
bạn ơi! hình như code này chạy hơi chậm =>>> có CÁCH NÀO KHẮC PHỤC KHÔNG BẠN ?
 
bạn ơi! hình như code này chạy hơi chậm =>>> có CÁCH NÀO KHẮC PHỤC KHÔNG BẠN ?
Vào Link sau tham khảo code đó nha Copy khúc code không chạy For Next (Bài #13) ý nó nhanh hơn rất nhiều Code Macro4 đó là hay nhất rồi đó.... trên GPE chưa có cái Function Mcro4 nào hay hơn đâu

http://www.giaiphapexcel.com/forum/...ng-Macro-4-để-lấy-dữ-liệu-từ-1-file-đang-đóng
 
bạn đem file thật lên cho chúng tôi mượn nghịch tí xem
file của em đây, nhờ chỉ giáo ạ! có 2 file ở trong cùng 1 folder, e muốn update dữ liệu từ file mail outlook =>> update1. Nhưng code có vẻ chạy hơi chậm, dữ liệu ít mà chạy chậm thế này, giả sử muốn update nhiều dữ liệu thì chắc phải đợi 15, 20 phút quá
 

File đính kèm

file của em đây, nhờ chỉ giáo ạ! có 2 file ở trong cùng 1 folder, e muốn update dữ liệu từ file mail outlook =>> update1. Nhưng code có vẻ chạy hơi chậm, dữ liệu ít mà chạy chậm thế này, giả sử muốn update nhiều dữ liệu thì chắc phải đợi 15, 20 phút quá

file outlook đâu ? đem hết lên đi
 
Chào các bác,
Bác nào giúp em một vấn đề với. Khi copy dữ liệu từ 1 vùng này sang 1 vùng khác (VD Sheet 1 copy cột A sang cột B), trong một ngày chỉ cho phép copy 1 lần, khi copy thì hiện 1 message box thông báo là trong ngày hôm nay đã copy xxx lần -> confirm/back.
Bác nào giúp em với
 
Chào các bác,
Bác nào giúp em một vấn đề với. Khi copy dữ liệu từ 1 vùng này sang 1 vùng khác (VD Sheet 1 copy cột A sang cột B), trong một ngày chỉ cho phép copy 1 lần, khi copy thì hiện 1 message box thông báo là trong ngày hôm nay đã copy xxx lần -> confirm/back.
Bác nào giúp em với
trong một ngày chỉ cho phép copy 1 lần <> ngày hôm nay đã copy xxx lần
TRONG MỘT Câu hỏi mà khác nhau là sao........?????????????????
 
Web KT

Bài viết mới nhất

Back
Top Bottom