Đếm sô dòng không cần mở file (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

keke355992

Thành viên thường trực
Tham gia
19/1/08
Bài viết
310
Được thích
20
Nghề nghiệp
KẾ TOÁN THUẾ, TƯ VẪN THUẾ
E tìm được bài viết của thầy NDU trên diễn đàn về cách Import dữ liệu không cần mở file ( Xin cảm ơn thầy nhiều ). E có 2 điều thắc mắc muốn nhờ các A/c giúp:
Sub Main() Dim arr
On Error Resume Next
arr = GetData(ThisWorkbook.Path & "\CA 1.xlsx", "Sheet1", "A8:V1000", False, False)
If IsArray(arr) Then Range("A8").Resize(UBound(arr, 1) + 1, UBound(arr, 2) + 1).Value = arr
End Sub

+ Đoạn e bôi đỏ, dòng đầu tiên thì cố định, nhưng e muốn dòng cuối cùng theo dữ liệu của mình ( Như trong ví dụ sẽ chỉ là đến dòng 11 của file CA 1.xlsx)
+ Sau khi Import xong e muốn xóa luôn dữ liệu từ file nguồn ( Cụ thể trong ví dụ sẽ là xóa Range("A8:V11") trong file CA 1.xlsx)
Xin cảm ơn các A/c nhiều.
 

File đính kèm

+ Đoạn e bôi đỏ, dòng đầu tiên thì cố định, nhưng e muốn dòng cuối cùng theo dữ liệu
+ Sau khi Import xong e muốn xóa luôn dữ liệu từ file nguồn ( Cụ thể trong ví dụ sẽ là xóa Range("A8:V11") trong file CA 1.xlsx).

Ý đầu không quan trọng. Bạn cứ chép đến hàng 65000 cũng được. Sau đó dán vào đâu đó của sheet và tính được nó có mấy dòng.

Ý 2 là khó đó. Nếu làm được thì ai cũng "thò tay" vào và xóa. Vô tang tích.
 
Upvote 0
Ý đầu không quan trọng. Bạn cứ chép đến hàng 65000 cũng được. Sau đó dán vào đâu đó của sheet và tính được nó có mấy dòng.

Ý 2 là khó đó. Nếu làm được thì ai cũng "thò tay" vào và xóa. Vô tang tích.

- E bít là đến dòng 65.000 đc, nhưng ở đây là mún giới hạn dữ liệu ạ, vì nhiều lí do khác nhau ạ.
- Y/c thứ 2 cũng vậy ạ, vì nhiều lí do nên e mún xóa luôn sau khi Import. Nhg e nghĩ chắc có thể được, e vừa tìm hiểu lệnh DELETE của ADO và đang thử ạ.

+ A có cao kiến nào giúp e đc về y/c thứ 1 ko ạ !
 
Upvote 0
- E bít là đến dòng 65.000 đc, nhưng ở đây là mún giới hạn dữ liệu ạ, vì nhiều lí do khác nhau ạ.
- Y/c thứ 2 cũng vậy ạ, vì nhiều lí do nên e mún xóa luôn sau khi Import. Nhg e nghĩ chắc có thể được, e vừa tìm hiểu lệnh DELETE của ADO và đang thử ạ.

+ A có cao kiến nào giúp e đc về y/c thứ 1 ko ạ !

ý 1. Nếu vẫn dùng ado để xác định dòng cuối thì bạn dùng hàm count(): select count(*) from [A1:A65000]

ý 2: Ko thể dùng ADO để xóa dữ liệu, nhưng bạn có thể dùng mẹo là update hết thành trống.
 
Upvote 0
Chủ thớt chỉ vọc code chơi cho vui chứ chưa hề thực hành cho nên chưa có kinh nghiệm về ba cái vụ update tự động. Code chỉ là thứ yếu, quy trình mới là chính yếu.

1. Trước khi xoá dữ liệu cũ, phải CHẮC CHẮN là sao ghi đã thành công. Tức là phải đóng file mới và kiểm soát dữ liệu.

2. Ba cái trò update tự động bắt buộc phải kiểm soát trước khi update. Ví dụ lỡ bấm nút 2 lần. Lần thứ nhất nhập, sửa dữ liệu file gốc. Lần thứ hai, lại nhập dữ liệu đã sửa vào !!!

Dân chuyên dữ liệu như tôi mỗi lần nghe đến từ "tự động" thì rùng mình. Tôi chỉ sử dụng ba cái tự động đối với những trường hợp mà mình hoàn toàn chủ động (dữ liệu chuẩn, khong có những trường hơp ngoại lệ, rắc rối)
 
Upvote 0
ý 1. Nếu vẫn dùng ado để xác định dòng cuối thì bạn dùng hàm count(): select count(*) from [A1:A65000]

ý 2: Ko thể dùng ADO để xóa dữ liệu, nhưng bạn có thể dùng mẹo là update hết thành trống.

Mình làm được rùi, cảm ơn bạn nhé. Tất nhiên là cũng chỉ để vọc cho biết thui, chứ cái này cũng không cần thiết lắm :)
 
Lần chỉnh sửa cuối:
Upvote 0
Chủ thớt chỉ vọc code chơi cho vui chứ chưa hề thực hành cho nên chưa có kinh nghiệm về ba cái vụ update tự động. Code chỉ là thứ yếu, quy trình mới là chính yếu.

1. Trước khi xoá dữ liệu cũ, phải CHẮC CHẮN là sao ghi đã thành công. Tức là phải đóng file mới và kiểm soát dữ liệu.

2. Ba cái trò update tự động bắt buộc phải kiểm soát trước khi update. Ví dụ lỡ bấm nút 2 lần. Lần thứ nhất nhập, sửa dữ liệu file gốc. Lần thứ hai, lại nhập dữ liệu đã sửa vào !!!

Dân chuyên dữ liệu như tôi mỗi lần nghe đến từ "tự động" thì rùng mình. Tôi chỉ sử dụng ba cái tự động đối với những trường hợp mà mình hoàn toàn chủ động (dữ liệu chuẩn, khong có những trường hơp ngoại lệ, rắc rối)

Cảm ơn nhg ý kiến của a ạ :). Đúng là e đang vọc code, nhg để chơi cho vui thì hem pải, do thực tế nhu cầu công việc của mình thui ạ. Những trường hợp ngoại lệ, rắc rối e cũng đã có sự đề pòng một phần nào đó rùi để tránh những đáng tiếc có thể xảy ra.
 
Upvote 0
Công việc thực tế mà có giai đoạn xoá dữ liệu tự động là cơ quan sử dụng quy trình dỏm.

Dữ liệu dùng xong thì chuyển sang bộ phận (folder chẳng hạn) lưu trữ. Một thời gian sau mới xoá (ví dụ 1 tuần, 1 tháng)
 
Upvote 0
Công việc thực tế mà có giai đoạn xoá dữ liệu tự động là cơ quan sử dụng quy trình dỏm.

Dữ liệu dùng xong thì chuyển sang bộ phận (folder chẳng hạn) lưu trữ. Một thời gian sau mới xoá (ví dụ 1 tuần, 1 tháng)

Nó như này ạ: 3 có 3 máy tính
+ Máy 3: Chứa bảng tính Trung Gian
+ Máy 2: Làm công việc Export dữ liệu ra cái bảng tính Trung Gian của máy 3
+ Máy 1: Import dữ liệu bảng tính Trung Gian sau đó Save

- Sau khi máy 1 Import xong, thì xóa luôn dữ liệu tại bảng tính Trung Gian. Máy 2 chỉ việc Export dữ liệu mới và không phải quan tâm đến điều gì khác ( tất nhiên khi Máy 1 sau khi Import xong phải thông báo với máy 2). Nôm na là như vậy ạ... Máy 2 người ta mún như thế ạ --=0
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom