Copy sheet sang file khác nằm ở 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
731
Được thích
294
Điểm
468
Giới tính
Nữ
Em nhờ các Bác và các anh chị viết giúp em code như file đính kèm ạ.
Em cảm ơn ạ
 

File đính kèm

  • Vật tư.xlsx
    46 KB · Đọc: 15
Anh ơi sửa giúp em cái code này với ạ
Em muốn là nếu có tên sheets(14-09-2022) rồi mà copy lần nữa thì sẽ thành sheets(14-09-2022)(2); sheets(14-09-2022)(3).........
Em đã sửa như này rùi mà không được anh ơi.
Mã:
Option Explicit

Sub Tong_hop_sang_file_khac()
Dim a As Date, c As String, i As Long, k As Long, lrn As Long
Dim sd As Worksheet, sn As Worksheet, wb As Workbook, nwb As Workbook
Set wb = ThisWorkbook
Set sn = wb.Sheets("Tonghop")
lrn = sn.Cells(Rows.Count, 1).End(xlUp).Row
a = Date: c = Replace(a, "/", "-")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set nwb = Workbooks.Open("C:\Users\admin\Desktop\Du_an\TH_Vat_tu.xlsx")

Set sd = nwb.Sheets.Add

    For i = 1 To Sheets.Count
    k = Sheets.Count
        If Sheets(i).Name = c Then
  Sheets(i).Copy Before:=Sheets(i)'Thêm cái này.....'
            'MsgBox "Tên sheet nay da ton tai, vui long kiem tra truoc khi bat dau lai"
            Exit Sub
        End If
    Next
    With sd
    .Name = c
    sn.Range("A1:E" & lrn).Copy
    .Range("A1:E" & lrn).PasteSpecial xlPasteAll
    .Range("A1:E" & lrn).EntireColumn.AutoFit: .Range("A1").Select
    nwb.Save
    nwb.Close
    End With
    MsgBox "Da cap nhat xong, tong so sheets trong file là " & k
Application.DisplayAlerts = True
Application.ScreenUpdating = True
  
End Sub
 

File đính kèm

  • Du_an.rar
    73.6 KB · Đọc: 7
Upvote 0
Anh ơi sửa giúp em cái code này với ạ
Em muốn là nếu có tên sheets(14-09-2022) rồi mà copy lần nữa thì sẽ thành sheets(14-09-2022)(2); sheets(14-09-2022)(3).........
Em đã sửa như này rùi mà không được anh ơi.
Mã:
Option Explicit

Sub Tong_hop_sang_file_khac()
Dim a As Date, c As String, i As Long, k As Long, lrn As Long
Dim sd As Worksheet, sn As Worksheet, wb As Workbook, nwb As Workbook
Set wb = ThisWorkbook
Set sn = wb.Sheets("Tonghop")
lrn = sn.Cells(Rows.Count, 1).End(xlUp).Row
a = Date: c = Replace(a, "/", "-")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set nwb = Workbooks.Open("C:\Users\admin\Desktop\Du_an\TH_Vat_tu.xlsx")

Set sd = nwb.Sheets.Add

    For i = 1 To Sheets.Count
    k = Sheets.Count
        If Sheets(i).Name = c Then
  Sheets(i).Copy Before:=Sheets(i)'Thêm cái này.....'
            'MsgBox "Tên sheet nay da ton tai, vui long kiem tra truoc khi bat dau lai"
            Exit Sub
        End If
    Next
    With sd
    .Name = c
    sn.Range("A1:E" & lrn).Copy
    .Range("A1:E" & lrn).PasteSpecial xlPasteAll
    .Range("A1:E" & lrn).EntireColumn.AutoFit: .Range("A1").Select
    nwb.Save
    nwb.Close
    End With
    MsgBox "Da cap nhat xong, tong so sheets trong file là " & k
Application.DisplayAlerts = True
Application.ScreenUpdating = True
 
End Sub
Trong lúc chờ tác giả, bạn thử sửa lại đoạn dưới xem sao:
PHP:
    For i = 1 To Sheets.Count
    k = Sheets.Count
        If Sheets(i).Name = c Then
            Sheets(i).Name = c & "(" & k - i + 1 & ")"
        End If
    Next
    With sd
    .Name = c
 
Upvote 0
Bạn copy cả 2 file và thư mục D:\TH_du an\ và chạy thử xem đúng ý chưa?
 

File đính kèm

  • TH_du an.rar
    72.7 KB · Đọc: 5
Upvote 0
Anh ơi sửa giúp em cái code này với ạ
Em muốn là nếu có tên sheets(14-09-2022) rồi mà copy lần nữa thì sẽ thành sheets(14-09-2022)(2); sheets(14-09-2022)(3).........
Em đã sửa như này rùi mà không được anh ơi.
Mã:
Option Explicit

Sub Tong_hop_sang_file_khac()
Dim a As Date, c As String, i As Long, k As Long, lrn As Long
Dim sd As Worksheet, sn As Worksheet, wb As Workbook, nwb As Workbook
Set wb = ThisWorkbook
Set sn = wb.Sheets("Tonghop")
lrn = sn.Cells(Rows.Count, 1).End(xlUp).Row
a = Date: c = Replace(a, "/", "-")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set nwb = Workbooks.Open("C:\Users\admin\Desktop\Du_an\TH_Vat_tu.xlsx")

Set sd = nwb.Sheets.Add

    For i = 1 To Sheets.Count
    k = Sheets.Count
        If Sheets(i).Name = c Then
  Sheets(i).Copy Before:=Sheets(i)'Thêm cái này.....'
            'MsgBox "Tên sheet nay da ton tai, vui long kiem tra truoc khi bat dau lai"
            Exit Sub
        End If
    Next
    With sd
    .Name = c
    sn.Range("A1:E" & lrn).Copy
    .Range("A1:E" & lrn).PasteSpecial xlPasteAll
    .Range("A1:E" & lrn).EntireColumn.AutoFit: .Range("A1").Select
    nwb.Save
    nwb.Close
    End With
    MsgBox "Da cap nhat xong, tong so sheets trong file là " & k
Application.DisplayAlerts = True
Application.ScreenUpdating = True
 
End Sub
Thử code này:
Mã:
Option Explicit

Sub Tong_hop_sang_file_khac()

Dim wsName As String, mainLr As Long, dPath As String, mainRng As Range
Dim mainWb As Workbook, newWb As Workbook, mainWs As Worksheet, newWs As Worksheet

Application.ScreenUpdating = False
Application.DisplayAlerts = False
'***************************************************************************
dPath = "C:\Users\admin\Desktop\Du_an\TH_Vat_tu.xlsx" ' => Chi sua path o day neu thay doi
Set mainWb = ThisWorkbook
Set mainWs = mainWb.Sheets("Tonghop")
'***************************************************************************
mainLr = mainWs.Cells(Rows.Count, "B").End(xlUp).Row
wsName = Format(Date, "dd-mm-yyyy")
Set mainRng = mainWs.Range("A1:E" & mainLr)
'***************************************************************************
Set newWb = Workbooks.Open(dPath)
On Error Resume Next
    newWb.Sheets(wsName).Copy after:=newWb.Sheets(newWb.Sheets.Count)
    If Err.Number > 0 Then
        Set newWs = newWb.Sheets.Add
        newWs.Name = wsName
    Else
        Set newWs = ActiveSheet
        newWs.Cells.Clear
    End If
On Error GoTo 0
'***************************************************************************
    With newWs
        mainRng.Copy .Cells(1, 1)
        .Columns("A:E").AutoFit
        .Rows("1:" & mainLr).AutoFit
        newWb.Close True
    End With
'***************************************************************************
Application.DisplayAlerts = True
Application.ScreenUpdating = True
  
End Sub
 
Upvote 0
Thử code này:
Mã:
Option Explicit

Sub Tong_hop_sang_file_khac()

Dim wsName As String, mainLr As Long, dPath As String, mainRng As Range
Dim mainWb As Workbook, newWb As Workbook, mainWs As Worksheet, newWs As Worksheet

Application.ScreenUpdating = False
Application.DisplayAlerts = False
'***************************************************************************
dPath = "C:\Users\admin\Desktop\Du_an\TH_Vat_tu.xlsx" ' => Chi sua path o day neu thay doi
Set mainWb = ThisWorkbook
Set mainWs = mainWb.Sheets("Tonghop")
'***************************************************************************
mainLr = mainWs.Cells(Rows.Count, "B").End(xlUp).Row
wsName = Format(Date, "dd-mm-yyyy")
Set mainRng = mainWs.Range("A1:E" & mainLr)
'***************************************************************************
Set newWb = Workbooks.Open(dPath)
On Error Resume Next
    newWb.Sheets(wsName).Copy after:=newWb.Sheets(newWb.Sheets.Count)
    If Err.Number > 0 Then
        Set newWs = newWb.Sheets.Add
        newWs.Name = wsName
    Else
        Set newWs = ActiveSheet
        newWs.Cells.Clear
    End If
On Error GoTo 0
'***************************************************************************
    With newWs
        mainRng.Copy .Cells(1, 1)
        .Columns("A:E").AutoFit
        .Rows("1:" & mainLr).AutoFit
        newWb.Close True
    End With
'***************************************************************************
Application.DisplayAlerts = True
Application.ScreenUpdating = True
 
End Sub
Em cảm ơn anh rất nhiều ạ
 
Upvote 0
Upvote 0
Upvote 0
Web KT
Back
Top Bottom