Copy sang các file trong các thư mục khác nhau

Liên hệ QC

hongphuong1997

Thành viên tiêu biểu
Tham gia
12/11/17
Bài viết
770
Được thích
321
Giới tính
Nữ
Cháu nhờ các Bác và Anh chị giúp cháu bài như file đính kèm ạ
Cháu cảm ơn ạ
 

File đính kèm

  • Dulieu.xls
    302 KB · Đọc: 24
Hihi..... nói thật sự với anh, em tuy hỏi bài cực nhiều và cũng được rất nhiều anh chị và các Bác siêu cao thủ trên GPE dạy dỗ rất nhiệt tình:
Nhưng thực tình em không thể tự viết code được
Em thật sự đáng buồn về bộ não của em.
"các Bác siêu cao thủ trên GPE" -> đừng viết hoa chữ bác bạn nhé! Bác trong lăng mới phải viết hoa còn bác trong GPE mà bị viết hoa thì sợ lắm.
 
Upvote 0
Trước em có sưu tầm được sub() copy này nhưng em không nhớ là của ai?
Code chạy thì rất chuẩn, nhưng mỗi tội là chỉ copy được các file ở trong 1 thư mục (Chắc là sẽ copy được nhiều thư mục ; nhưng em không biết nguyên lý của nó nên không chỉnh sửa được.
Các anh chỉnh sửa cho em với
Em cảm ơn ạ
Mã:
Public Sub OpenAllFileInFolder2()
tg = Timer
    Dim FSO As Object, ChonFolder As Object, MyFile As Object, Path  As String, TypeF As String
    Dim wk As Workbook
    Dim DefaultRange As String, UserRange As Range, RangePaste As String

DefaultRange = Selection.Address
Set UserRange = Application.InputBox _
        (Prompt:="Select data:", _
        Title:="Copy to all file", _
        Default:=DefaultRange, _
        Type:=8)
RangePaste = UserRange(1, 1).Address
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Path = ThisWorkbook.Path
Set FSO = CreateObject("Scripting.FilesyStemObject")
Set ChonFolder = FSO.GetFolder(Path)
For Each MyFile In ChonFolder.Files
    TypeF = FSO.GetExtensionName(MyFile)
    If MyFile.Name <> ThisWorkbook.Name Then
        If TypeF Like "*xls*" Then
            Set wk = Workbooks.Open(MyFile.Path)
            With Sheets("Nguon")
                UserRange.copy .Range(RangePaste)
            
        End With
    End If
    wk.Close True
End If
Next MyFile
Thoat:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
 
End Sub
 

File đính kèm

  • Vidu.rar
    31.5 KB · Đọc: 8
Upvote 0
Trước em có sưu tầm được sub() copy này nhưng em không nhớ là của ai?
Code chạy thì rất chuẩn, nhưng mỗi tội là chỉ copy được các file ở trong 1 thư mục (Chắc là sẽ copy được nhiều thư mục ; nhưng em không biết nguyên lý của nó nên không chỉnh sửa được.
Các anh chỉnh sửa cho em với
Em cảm ơn ạ
Mã:
Public Sub OpenAllFileInFolder2()
tg = Timer
    Dim FSO As Object, ChonFolder As Object, MyFile As Object, Path  As String, TypeF As String
    Dim wk As Workbook
    Dim DefaultRange As String, UserRange As Range, RangePaste As String

DefaultRange = Selection.Address
Set UserRange = Application.InputBox _
        (Prompt:="Select data:", _
        Title:="Copy to all file", _
        Default:=DefaultRange, _
        Type:=8)
RangePaste = UserRange(1, 1).Address
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Path = ThisWorkbook.Path
Set FSO = CreateObject("Scripting.FilesyStemObject")
Set ChonFolder = FSO.GetFolder(Path)
For Each MyFile In ChonFolder.Files
    TypeF = FSO.GetExtensionName(MyFile)
    If MyFile.Name <> ThisWorkbook.Name Then
        If TypeF Like "*xls*" Then
            Set wk = Workbooks.Open(MyFile.Path)
            With Sheets("Nguon")
                UserRange.copy .Range(RangePaste)
           
        End With
    End If
    wk.Close True
End If
Next MyFile
Thoat:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
 
End Sub
Thêm cái vòng lặp for ở chỗ chọn Folder là được.Nếu dữ liệu được đánh số theo số thứ tự thì có thể dùng được ADO để cập nhập dữ liệu vào.
 
Upvote 0
Thêm cái vòng lặp for ở chỗ chọn Folder là được.Nếu dữ liệu được đánh số theo số thứ tự thì có thể dùng được ADO để cập nhập dữ liệu vào.
Anh oi, anh viết cho em với lâu lắm rùi em chẳng thấy anh viết giúp mọi người gì cả
 
Upvote 0
Web KT

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

Back
Top Bottom