Hỏi về hàm tìm kiếm

Liên hệ QC

feelingyes

Thành viên tiêu biểu
Tham gia
24/9/07
Bài viết
459
Được thích
395
Nghề nghiệp
Economic
Em có 02 file (01 File ngày (date) và 01 file report)
-Ví dụ hôm nay là 28/11 em chuyển vào Sai gòn số lượng...., thì cuối ngày
em sẽ có một report (trong đó có mục hàng trên đường)
Vậy có cách nào khi ở file report ta gõ ngày vào thì nó sẽ tìm kiếm đến sheet28 tương ứng
Các bác xem file và giúp đỡ nhé
 

File đính kèm

Lần chỉnh sửa cuối:
Cái này có lẽ dùng INDIRECT... bạn nghiên cứu thêm về hàm này... Có điều nếu file có vài chục sheet như bạn trình bày thì cũng hơi mệt đấy... Sao lại chia ra nhiều sheet thế kia cho mất công? Đễ phân biệt ngày này với ngày khác ta chỉ cần thêm cột NGÀY vào nữa là ổn rồi... việc trích xuất rất gọn... Cậu xem file "Một kiễu trích xuất dử liệu mới" của tôi đăng ấy... Quá trời ngày... nếu mà làm như cậu mỗi ngày 1 sheet thì chắc.. đói luôn!
 
Đừng nghe 'Hắn' dụ!

Hãy nghe mình nè:
Bạn dùng 1 file thôi, không cần đến 2 file như vậy;
Hơn nữa, CSDL đúng là nên chứa trong một sheet thôi ;có trường [Ngay];. . .
Nhưng quan trọng là, trong những trường hợp này người ta hay dùng AdvancedFilter, bạn à!
Nếu chưa rành về AdvFilter thì đọc các bài của HanDung107 khoảng vài ngày là có thể vững lắm rồi!
Nếu chưa chắc chắn thì hỏi tiếp trên diễn đàn!
Khi nào đã nhuyễn AdvFilter thì mới thử các ngón nghề của AnhTuấn Vì những thứ này giành cho những lão luyện không hà!

Thân ái!--=0
 
Bạn đặt name:
?=INDIRECT("'"&TEXT([Report.xls]Report'!$F$1,"dd")&"'"&"!"&"A:B")
là được.
Thân!
 
feelingyes đã viết:
Em có 02 file (01 File ngày (date) và 01 file report)
-Ví dụ hôm nay là 28/11 em chuyển vào Sai gòn số lượng...., thì cuối ngày
em sẽ có một report (trong đó có mục hàng trên đường)
Vậy có cách nào khi ở file report ta gõ ngày vào thì nó sẽ tìm kiếm đến sheet28 tương ứng
Các bác xem file và giúp đỡ nhé
Option Explicit
Dim wPath As String
Dim ShName As String
Dim LRow As Long
Public Sub CopyWS()
With Application 'Digita
.DisplayAlerts = False
.ScreenUpdating = False
End With
Sheets("Report").Range("A2:B1000").ClearContents
ShName = Sheets("Report").Range("F2") 'Lay ten sh can copy
'Duong dan file date
wPath = ThisWorkbook.Path
'Mo Date va copy
Workbooks.Open Filename:=wPath & "\Date.xls"
If SheetExists(ShName) = True Then ' MsgBox "ok"
Sheets(ShName).Select
LRow = Range("A65000").End(xlUp).Row
Range("A2:B" & LRow).Copy
Else
MsgBox "Khong co sheet do"
End If
ActiveWindow.Close
'Dan vao Report
Sheets("Report").Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False

With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With

End Sub
Private Function SheetExists(sname) As Boolean
'Levanduyet
Dim x As Object
On Error Resume Next
Set x = ActiveWorkbook.Sheets(sname)
If Err = 0 Then SheetExists = True _
Else SheetExists = False
End Function
Chép code sau và nhấn Alt F8 để chạy CopyWS. Cái này tôi xào nấu lại của các đại gia VBA. Còn code kiểm tra WorkBook có tồn tại hay đang mở mà chưa tìm ra.
Làm quen VBA dần, lấy vợ rồi sẽ ghiền VBA thôi. Vợ không cho đi đâu cả thì ở nhà học VBA.
 
Tôi tưởng post file rồi xem lại vẫn chưa post tôi gửi file lên bạn xem thử có được không nhé.
 

File đính kèm

Hàm này của Anh Duyệt :

Private Function WorkBookIsOpen(wbname) As Boolean

Dim x As Workbook
On Error Resume Next
Set x = Workbooks(wbname)
If Err = 0 Then WorkBookIsOpen = True Else: WorkBookIsOpen = False
End Function
 
Web KT

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

Back
Top Bottom