giaosy
Thành viên thường trực




- Tham gia
- 6/12/06
- Bài viết
- 205
- Được thích
- 144
Nhờ sự trợ giúp của bác ndu, em đã làm ra cái file này, chức năng chia dữ liệu trong sheet thành các book theo mã hàng hóa. Nhưng có vấn đề phát sinh là khi tạo workook mới thì cứ 1 wb có tên đặt theo mã hàng hóa lại phát sinh thêm 1 book trắng. Các bác chỉ giúp em cách khắc phục vấn đề này và làm sao để em có thể chỉ định được thư mục lưu các wb này (thay vì lưu mặc định vào mydoccument) với. Thanks các bác.
Đây là code:
Đây là code:
PHP:
Sub test_chia_DL()
Dim Nwb As Workbook
'Dim Frg As Range'
Dim clls As Range
Dim NwbName As String
'Set Frg = activativeWorkbook.Range(Sheets("Data").[IV2], Sheets("Data").[IV65536].End(xlUp)) '
Application.ScreenUpdating = False
With Sheets("Data").Range("A1").CurrentRegion
.Resize(, 1).AdvancedFilter 2, , Sheets("Data").[IV1], True
For Each clls In Range(Sheets("Data").[IV2], Sheets("Data").[IV65536].End(xlUp))
If workbookExist = False Then
Workbooks.Add
Set Nwb = Workbooks.Add
With Nwb
.SaveAs Filename:=clls.Value
End With
End If
NwbName = Nwb.Name
If bWorkbookIsOpen(NwbName) Then
Windows(NwbName).Activate.activateworkbook.Worksheets("Sheet1").Range("A1"). CurrentRegion.ClearContents
End If
.AutoFilter 1, clls
.SpecialCells(12).Copy
Workbooks(NwbName).Sheets("sheet1").Range("A1").PasteSpecial 3
Next clls
.AutoFilter
End With
'Sheets("Data").Range("IV1").CurrentRegion.Clear'
'Sh.Activate'
Application.ScreenUpdating = True
End Sub
Mã:
[B]Function bWorkbookIsOpen(WbkName As String) As Boolean[/B]
On Error Resume Next
bWorkbookIsOpen = CBool(Len(Workbooks(rsWbkName).Name) > 0)
[B]End Function[/B]
File đính kèm
Chỉnh sửa lần cuối bởi điều hành viên: