Cho mình hỏi tại sao file mình chạy Sao lưu lại bị đầy bộ nhớ.

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

thientan201

Thành viên mới
Tham gia
24/4/24
Bài viết
3
Được thích
0
Hiện tượng là khi di chuyển một sheet ở file excel này sang một file excel khác thì hiện lỗi đầy bộ nhớ.
 

File đính kèm

  • 03.png
    03.png
    4.2 KB · Đọc: 15
  • 2.1-PGH.xlsm
    213.5 KB · Đọc: 9
Lần chỉnh sửa cuối:
bấm vào đâu thì nó bị lỗi đó bạn?
 
Upvote 0
Module SaoLuuTuDong đó bạn, chạy trên module thì nó chạy rất tốt, nhưng khi chạy rectangle có gắn module đó thì nó thường bị lỗi đầy bộ nhớ.
Sửa lại như này coi xem sao?
Mã:
Sub SaoLuuTuDong()
    Dim DuongDan$, SaoLuu$, ThangNam$, DuongDanFile$, DuongDanPGH$
    Dim Wb As Workbook, Ws As Worksheet, MeWB As Workbook
    Set Wb = ThisWorkbook
    Set Ws = Wb.ActiveSheet
    Wb.Save
    Ws.Range("A44").Value = Ws.Range("A44").Value
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    SaoLuu = Split(Ws.Name, "-")(0)
    ThangNam = "PGH." & SaoLuu & ".T" & Month(Ws.Range("F5").Value) & "-" & Year(Ws.Range("F5").Value)
    DuongDanPGH = Wb.Path & "\PGH" & "\"
    DuongDan = Wb.Path & "\PGH" & "\" & SaoLuu & "\"
    DuongDanFile = DuongDan & ThangNam & ".xlsm"
    With CreateObject("Scripting.FileSystemObject")
        If Not .FolderExists(DuongDanPGH) Then .CreateFolder (DuongDanPGH)
    End With
    With CreateObject("Scripting.FileSystemObject")
        If Not .FolderExists(DuongDan) Then .CreateFolder (DuongDan)
    End With
    If Dir(DuongDanFile) = "" Then
        Ws.Copy
        Set MeWB = ActiveWorkbook
        MeWB.ActiveSheet.Range("C8:E42").Value = MeWB.ActiveSheet.Range("C8:E42").Value
        MeWB.ActiveSheet.Range("H:O").Delete
        MeWB.SaveAs DuongDanFile, 52
        MeWB.Close False
    Else
        Set MeWB = Workbooks.Open(DuongDanFile)
    End If
    Wb.Activate
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set MeWB = Nothing
End Sub
 
Upvote 0
Web KT
Back
Top Bottom