Vô cái đó ở đâu vậy bác ơi? Con tưởng ngay trong Excel có chỗ để mình coi cái này chớ!
Mình có câu hỏi nhỏ thôi. Như tiêu đề, làm cách nào để biết file có bao nhiêu sheet và tìm đến những sheet rỗng không có dữ liệu?
File minh họa mình đính kèm.
Cảm ơn mọi người.
Giống bài của thớt này quá vậy bạnMình có câu hỏi nhỏ thôi. Như tiêu đề, làm cách nào để biết file có bao nhiêu sheet và tìm đến những sheet rỗng không có dữ liệu?
File minh họa mình đính kèm.
Cảm ơn mọi người.
Bạn dùng hàm =SHEETS() là đếm luôn cả những Sheet ẩn, còn sheet rỗng thì hình như có bài rồi thì phải.Mình có câu hỏi nhỏ thôi. Như tiêu đề, làm cách nào để biết file có bao nhiêu sheet và tìm đến những sheet rỗng không có dữ liệu?
File minh họa mình đính kèm.
Cảm ơn mọi người.
Không cần Excel, dùng phần mềm mở được file *.zip là được.Vô cái đó ở đâu
Câu 2 dễ thôi@befaint : con vẫn chưa biết cách vô chỗ đó! :|
@saobekhonglac : ờ há, Alt-F11 là nhanh nè, hi. À, mình mượn đỡ file thành viên để hỏi vấn đề của mình á.
@hungtin1997 : mới biết luôn á, cách hay quá xá luôn, nhanh gọn.
@hongtrang26 : hơi chậm, hi.
@Kiều Mạnh : SQL nhìn đã thiệt. Mà Mạnh xài, chớ mình yếu nên chưa có xài. éc
Đa số chưa có giải quyết được câu 2 á.
Chờ mở mang kiến thức.Câu 2 dễ thôi![]()
Đếm thì dùng hàm Sheets().@befaint : con vẫn chưa biết cách vô chỗ đó! :|
@saobekhonglac : ờ há, Alt-F11 là nhanh nè, hi. À, mình mượn đỡ file thành viên để hỏi vấn đề của mình á.
@hungtin1997 : mới biết luôn á, cách hay quá xá luôn, nhanh gọn.
@hongtrang26 : hơi chậm, hi.
@Kiều Mạnh : SQL nhìn đã thiệt. Mà Mạnh xài, chớ mình yếu nên chưa có xài. éc
Đa số chưa có giải quyết được câu 2 á.
Sub CheckSheetEmpty()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
Sheets(i).Select
If WorksheetFunction.CountA(ActiveSheet.UsedRange) = 0 And ActiveSheet.Shapes.Count = 0 Then
Sheets(1).Cells(i, 1).Value = Sheets(i).Name
End If
Next
Sheets(1).Select
Application.ScreenUpdating = True
End Sub
Muốn xài ADODB check Or cái x gì đó ấy chứ mở Files lên thì không thích lắmĐếm thì dùng hàm Sheets().
Còn rỗng thì đây:
Code này tính luôn Shape nhé. Report qua Sheets(1) nên lưu ý trước khi chạy nhé.
Mã:Sub CheckSheetEmpty() Application.ScreenUpdating = False For i = 1 To Sheets.Count Sheets(i).Select If WorksheetFunction.CountA(ActiveSheet.UsedRange) = 0 And ActiveSheet.Shapes.Count = 0 Then Sheets(1).Cells(i, 1).Value = Sheets(i).Name End If Next Sheets(1).Select Application.ScreenUpdating = True End Sub
Quan trọng là đáp ứng yêu cầu của @xuongrongdat hay không thôi.Muốn xài ADODB check Or cái x gì đó ấy chứ mở Files lên thì không thích lắm
nó báo ở đâu vậy bạn.Đếm thì dùng hàm Sheets().
Còn rỗng thì đây:
Code này tính luôn Shape nhé. Report qua Sheets(1) nên lưu ý trước khi chạy nhé.
Mã:Sub CheckSheetEmpty() Application.ScreenUpdating = False For i = 1 To Sheets.Count Sheets(i).Select If WorksheetFunction.CountA(ActiveSheet.UsedRange) = 0 And ActiveSheet.Shapes.Count = 0 Then Sheets(1).Cells(i, 1).Value = Sheets(i).Name End If Next Sheets(1).Select Application.ScreenUpdating = True End Sub
Option Explicit
Sub Test()
Dim ws As Worksheet, RngEmpty As Range, i As Long, EmpSheet As String
With ActiveWorkbook
MsgBox "So sheet la: " & .Sheets.Count
For Each ws In .Sheets
Set RngEmpty = ws.Cells.Find("*")
If RngEmpty Is Nothing And ws.Shapes.Count = 0 Then
i = i + 1
EmpSheet = IIf(EmpSheet = "", ws.Name, EmpSheet & Chr(10) & ws.Name)
End If
Next
MsgBox "So sheet trong la: " & i
MsgBox "Ten sheet trong la: " & Chr(10) & EmpSheet
End With
End Sub
hiện là mừng rồi, bên mình k thấy gì hết trơn.Nó bị vầy: (trước khi hiện thông báo này thì nó quay quay hơi lâu lâu)
View attachment 248157
Trả về Sheet thứ nhất đấy bác bắt đầu từ ô A1nó báo ở đâu vậy bạn.
Nó bị vầy: (trước khi hiện thông báo này thì nó quay quay hơi lâu lâu)
View attachment 248157
Sub CheckSheetEmpty()
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To Sheets.Count
Sheets(i).Select
If WorksheetFunction.CountA(ActiveSheet.UsedRange) = 0 And ActiveSheet.Shapes.Count = 0 Then
Sheets(1).Cells(i, 1).Value = Sheets(i).Name
End If
Next
Sheets(1).Select
Application.ScreenUpdating = True
End Sub
thấy rồi, cám ơn bạn.Trả về Sheet thứ nhất đấy bác bắt đầu từ ô A1
Bài đã được tự động gộp:
Mã:Sub CheckSheetEmpty() Application.ScreenUpdating = False Dim i As Integer For i = 1 To Sheets.Count Sheets(i).Select If WorksheetFunction.CountA(ActiveSheet.UsedRange) = 0 And ActiveSheet.Shapes.Count = 0 Then Sheets(1).Cells(i, 1).Value = Sheets(i).Name End If Next Sheets(1).Select Application.ScreenUpdating = True End Sub
Là làm bằng cách nào mình nghĩ chưa ra he Mạnh ơi?!thử xài hàm Excel
IFERROR(LOOKUP...) mà tìm Sheet Rỗng xem sao he