Làm sao để ghi ra một file excel mới từ những dòng có dữ liệu.

Liên hệ QC

blackname

Thành viên mới
Tham gia
27/11/06
Bài viết
6
Được thích
1
Mình có một file excel dự toán, bây giờ mình muốn sau khi ra kết quả xong, chạy macro, nó sẽ kiểm tra dòng, cột nào có dữ liệu và ghi tất cả ra một file excel mới (những dòng, cột không có dữ liệu sẽ không có trong file này). Xin hay chỉ mình cách viet chương trình macro này.
 
/)/ếu bạn đưa file mẫu lên thì tiện hơn, . . .

/(/hưng cũng đưa lên để bạn tham khảo vậy:
Mã:
Option Explicit[b]
Sub CopyToSheet()[/b]
 Dim LastColumn As Integer, iCot As Integer
 Dim LastRow As Long, lHang As Long
 Dim wRng As Range, Rng As Range, UniRng As Range
1 [COLOR="Blue"]'. Tim Dong & Cot Cuoi[/COLOR] 
If WorksheetFunction.CountA(Cells) > 0 Then
    LastRow = Cells.Find(What:="*", After:=[A1], _
        SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    LastColumn = Cells.Find(What:="*", After:=[A1], _
        SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
 End If
2 [COLOR="blue"]'.Noi Cac Dong Chua Du Lieu[/COLOR]
 For lHang = 1 To LastRow
    Set Rng = Range(Cells(lHang, 1), Cells(lHang, LastColumn))
    For Each wRng In Rng
        If wRng.Value <> "" Then
            If UniRng Is Nothing Then
                Set UniRng = Rng
            Else
                Set UniRng = Union(UniRng, Rng)
            End If
            Exit For
        End If
 Next wRng, lHang
3 [COLOR="blue"]'. Chep Vung Du Lieu Sang Sheet Moi[/COLOR]
 UniRng.Copy Destination:=Worksheets("S1").Range("A1")
[B]End Sub[/B]
 
Upvote 0
ban sa_dq ơi sau khi chay thi nó báo lỗi ở dòng
"UniRng.Copy Destination:=Worksheets("S1").Range("A1")"
xin ban xem lai minh giup
 
Upvote 0
Worksheets("S1").Range("A1")
Bạn phải đạt tên sheet là S1
 
Upvote 0
Bác SA_DQ nên bổ sung thêm phương thức sheets.Add để tạo thêm Sheet và đặt tên cho nó thì khỏi sai.

Cuối cùng mấy cái vùng bác đặt là Nothing thì ổn hơn.
 
Upvote 0
Theo tôi nghĩ :
- Câu hỏi của blackname chưa rõ: Dữ liệu có nằm trên các dòng và các cột liên tục tính từ dòng 1 cột A? (Để tìm được dòng cuối, cột cuối).
- SA_DQ mới đưa ra giải pháp chuyển dữ liệu ra sheet khác chứ chưa ghi ra file khác.
 
Lần chỉnh sửa cuối:
Upvote 0
Theo tôi nghĩ : SA_DQ mới đưa ra giải pháp chuyển dữ liệu ra sheet khác chứ chưa ghi ra file khác.
Từ Sheet chuyển sang file có thể sử dụng các cách sau:
1*/ Bằng tay (thủ công);
2*/ Ghi 1 macro ~ zì bạn thực hiện ở C1 để sau này tự động hoá, nếu muốn!;
3*/ . . . . .
To PhaTuHuong & các bạn #:
Đoạn code này còn nhiều 'Sạn' & chỉ để tham khảo nhất thời;
/(/ày nha:
a*/ Khai báo dư 1 biến;
b*/ Thiếu câu lệnh trước dòng lệnh mang số 1:
Mã:
   Application.ScreenUpdating = False
c*/ Như PTHuong nói, chưa xóa biến để trả bộ nhớ cho hệ thống:
Mã:
Set UniRng = Nothing:              Set Rng = Nothing
ở cuối các dòng lệnh
d*/ . . . . . . . . . . . . .
 
Upvote 0
Web KT
Back
Top Bottom