trong sub Copy_data có đoạn lệnh
Range(Selection, Selection.End(xlDown)).Select
cái selection này là gì vậy? do lệnh này nên trong file mở ra có range nào đã được chọn thì nó mới copy, ko có thì ko copy được.
do không hiểu ý bạn lắm mình chỉ có thể sửa lại đoạn code của bạn như sau:
ví dụ bạn muốn chép từ A1:A5 ở sheet1 của file mở ra vào sheet1 của file hiện tại, làm như sau:
Sub copy_data()
On Error Resume Next
Dim basebook As String
Dim mybook As Workbook
Dim fname As String
Dim Mypath As String
Application.ScreenUpdating = False
basebook = ActiveWorkbook.Name
fname = Application.GetOpenFilename(filefilter:="Execel files (*.xls), *.xls", Title:="Chon file nguon", MultiSelect:=False)
Set mybook = Workbooks.Open(fname)
ThisWorkbook.Sheets("sheet1").Range("A1:A5").Value = mybook.Sheets("sheet1").Range("A1:A5").Value
mybook.Close False
Application.ScreenUpdating = True
End Sub