Chào thầy, thầy viết giúp em đoạn code
1.Copy chết dữ liệu khi chạy vong lặp file có công thức với ạ, em làm như file att nhưng nó vẫn copy và giữ nguyên công thức , vậy khi em thay đổi giá trị trong sheet mẫu, số liệu nó bị chạy sai ạ .
2. Em muốn tạo 1 sub xóa các sheet vừa xuất ra ở bước 1, còn lại giữ nguyên các sheet khác, nhưng chưa làm được
Nhờ thầy hỗ trợ em với ạ. Cảm ơn thầy nhiều ạ.
Chào bạn bạn cho gitiho xin quyền truy cập
mình không xem được file do link bị giới hạn quyền truy cập.
Ở đây mình thấy có 1 vấn đề là bạn muốn tạo 1 sheet, sau đó lại xóa sheet đi. Quy trình này chưa được tối ưu cho lắm. Khi lập trình bạn nên làm rõ quy trình trước rồi mới thực hiện viết code sẽ tốt hơn.
Em đã mở đường link, nhờ thầy hỗ trợ em với ạ
Em đac att file qua mail, thầy xem giúp em với nhé
Chào bạn với phần xoá sheets bạn làm như sau
Option Explicit
Sub XoaSheets()
Dim Sh As Worksheet
On Error Resume Next
Application.DisplayAlerts = False
For Each Sh In ThisWorkbook.Worksheets
If (Sh.Name <> "Sheet1") Then
Sh.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
cảm ơn thầy phần xóa sheet em làm được rồi, còn phần xuất dữ liệu hàng loạt sang sheet khác em cũng làm được rồi, tuy nhiên những sheet xuất ra đó nó vẫn chứa cả công thức như sheet mẫu, em muốn sheet xuất ra đó dữ liệu đã được copy chết luôn không có công thức nữa ạ, nhờ thấy viết giúp em đoạn code với ạ
Choà bạn khi xuất bạn cần duyệt cách ô công thức và đưa nó về dạng value nhé.
sheet1.range("A1").value = sheet1.range("A1").value
Thưa thầy khi em đưa câu lệnh này vào xuất ra nhiều sheet thì ok, nhưng khi đưa câu lệnh này để xuất ra nhiều file thì nó báo lỗi .nhờ Thầy xem giúp em em làm sai đoạn nào với ạ.
Sub BangluongCX()
Dim i As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
i = 7
With ThisWorkbook.Sheets("CX_total")
While (.Cells(i, 3) <> "")
ThisWorkbook.Sheets("BL").Cells(8, 8) = .Cells(i, 3)
ThisWorkbook.Sheets("BL").Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\Bang luong chu xe\" & .Cells(5, 1) & " - " & .Cells(i, 3) & ".xlsx"
Activeworkboock.ThisWorkbook.Sheets("BL").Range("C14:C40").Value = Activeworkboock.ThisWorkbook.Sheets("BL").Range("C14:C40").Value
ActiveWorkbook.Close
i = i + 1
Wend
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "Da hoan thanh"
End Sub
Nhờ thầy đọc câu hỏi trên và trả lời giúp em với ạ
Lỗi ở chỗ ActiveWorkbook rất khó kiểm soát là workbook nào.
Khi muốn đưa dữ liệu ra 1 workbook mới, bạn dùng biến để gán cho workbook mới (ví dụ là NewWorkbook) => phân biệt 2 workbook:
Thisworkbook là file ban đầu
NewWorkbook là file mới tạo
=> khi đó bạn làm việc theo biến NewWorkbook thay vì ActiveWorkbook nhé.