Tách danh sách theo số stt (1 người xem)

Liên hệ QC

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

trungtin92

Thành viên mới
Tham gia
16/12/11
Bài viết
6
Được thích
0
Mình có nhiều danh sách mail , trong mỗi danh sách thì có hơn 7000 mail, mỗi mail tương ứng với 1 dòng.
Bây h mình muốn tách nó ra mỗi sheet là 50 mail, vì phần mềm gửi mail của mình 1 lần chỉ cho phép gửi 50 mail.
Mọi người giúp mình viết lênh macro hoặc gì cũng được để tách ra mỗi sheet là 50 mail với nhé ! tks mọi người nhiều !
 
Chuyện bạn nhờ chắc không khó lắm với mọi người, có điều bạn nên đưa file lên . . .

[Thongbao]Mình có nhiều danh sách mail , trong mỗi danh sách thì có hơn 7000 mail, mỗi mail tương ứng với 1 dòng.
Bây h mình muốn tách nó ra mỗi sheet là 50 mail, vì phần mềm gửi mail của mình 1 lần chỉ cho phép gửi 50 mail.
Mọi người giúp mình viết lênh macro hoặc gì cũng được để tách ra mỗi sheet là 50 mail với nhé ! tks mọi người nhiều ![/thOngbao]
. . . .với hơn 101 records giúp mọi người dễ hình dung, đi!--=0
 
Upvote 0

File đính kèm

Upvote 0
Việc chỉ gởi 1 lần 50 mails là bình thường. Có rất nhiều phần mềm cố ý đặt giới hạn như thế vì nhét vào cái chỗ "To:" "CC:", hay "BCC:" nhiều quá hay bị vấn đề.

Việc không bình thường là tại sao 50 tên một sheet. Thường người ta gộp 50 tên thành 1 chuỗi, cách nhau bởi dấu chấm phẩy ";". Và cứ mỗi chuỗi là một record (1 dòng).

Tách 7000 dòng ra 15 sheet chỉ cần hơn chục dòng code. Cái khó hiểu là tại sao phải cần 15 sheets trong khi chỉ cần tách thành 15 rows. Nếu lý do là cần thực hiện mail merge thì đề tài còn dài dài, "xin giúp thêm chút nữa...", code không chỉ dừng ở đây.
 
Upvote 0
Việc chỉ gởi 1 lần 50 mails là bình thường. Có rất nhiều phần mềm cố ý đặt giới hạn như thế vì nhét vào cái chỗ "To:" "CC:", hay "BCC:" nhiều quá hay bị vấn đề.

Việc không bình thường là tại sao 50 tên một sheet. Thường người ta gộp 50 tên thành 1 chuỗi, cách nhau bởi dấu chấm phẩy ";". Và cứ mỗi chuỗi là một record (1 dòng).

Tách 7000 dòng ra 15 sheet chỉ cần hơn chục dòng code. Cái khó hiểu là tại sao phải cần 15 sheets trong khi chỉ cần tách thành 15 rows. Nếu lý do là cần thực hiện mail merge thì đề tài còn dài dài, "xin giúp thêm chút nữa...", code không chỉ dừng ở đây.

Mình không hiểu ý bạn lắm !
Phần mềm gửi mail của mình nó hoạt động theo kiểu loadfile từ excel, và khi mở cái file excel đó ra thì nó hiện bên trái 1 loạt các sheet và bạn chọn từng sheet để gửi, nếu trong sheet đó chứa hơn 50 mail thì nó báo vượt quá, không cho phép gửi.
Nếu cách mà bạn nói gợp nó thành 1 chuỗi thì mình thấy chả khác nào như tốn thời gian khi đi cut 50 mail qua 1 sheet khác cả, vì phần mềm lấy mail của mình nó lọc mail về và trả ra kết quả mỗi mail là 1 row, làm theo cách của bạn thì phải đi copy từng mail rồi dán lên 1 dòng rồi phải thêm vào dấu ";" nữa. Mình không rành excel và ở đây mình muốn là viết đoạn mã cho chung về sau này, chứ không phải viết đúng theo số lượng mail mình đưa ra, vì nhiều lúc phần mềm lấy mail nó lọc được hơn cả 10k mail. Ý của mình là vậy. Dù gì cũng cảm ơn bạn đã đóng góp ý kiến !
 
Upvote 0
700 dòng tách ra 15 sheet có cần thiết không vậy?
Chỉ 1 sheet thôi được không.
Nhập số 1 sẽ có 50 dòng đầu, số 2 50 dòng kế tiếp, rồi 3,4,5,...... đến 15

Bạn có thể nói rõ hơn cách sử dụng ra sao không bạn ? Mình down về và bấm số 1 thì không thấy gì cả ?
 
Upvote 0
Mình không hiểu ý bạn lắm !
Phần mềm gửi mail của mình nó hoạt động theo kiểu loadfile từ excel, và khi mở cái file excel đó ra thì nó hiện bên trái 1 loạt các sheet và bạn chọn từng sheet để gửi, nếu trong sheet đó chứa hơn 50 mail thì nó báo vượt quá, không cho phép gửi.
Nếu cách mà bạn nói gợp nó thành 1 chuỗi thì mình thấy chả khác nào như tốn thời gian khi đi cut 50 mail qua 1 sheet khác cả, vì phần mềm lấy mail của mình nó lọc mail về và trả ra kết quả mỗi mail là 1 row, làm theo cách của bạn thì phải đi copy từng mail rồi dán lên 1 dòng rồi phải thêm vào dấu ";" nữa. Mình không rành excel và ở đây mình muốn là viết đoạn mã cho chung về sau này, chứ không phải viết đúng theo số lượng mail mình đưa ra, vì nhiều lúc phần mềm lấy mail nó lọc được hơn cả 10k mail. Ý của mình là vậy. Dù gì cũng cảm ơn bạn đã đóng góp ý kiến !

Nếu 50 dòng 1 sheet thì 10k dòng được tới 200 sheets!!!

Nếu 50 địa chỉ 1 dòng thì chỉ cần 4 sheets, mỗi sheet 50 dòng.

Đó là trên quan điểm thông thường, người ta gởi email hàng loạt bằng cách gộp tên lại:

dòng 1: ten1@domain1.com; ten2@domain2.com; ....; ten50@domain50.com
dòng 2: ten51@domạin1.com; ten52@domain52.com; ....; ten100@domain0.com
dòng 3: ten101@...

Tôi chỉ nói chuyện thông lệ, chứ thực tế thì ai biết phần mềm của bạn nó làm việc như thế nào.
 
Upvote 0
Mình có nhiều danh sách mail , trong mỗi danh sách thì có hơn 7000 mail, mỗi mail tương ứng với 1 dòng.
Bây h mình muốn tách nó ra mỗi sheet là 50 mail, vì phần mềm gửi mail của mình 1 lần chỉ cho phép gửi 50 mail.
Mọi người giúp mình viết lênh macro hoặc gì cũng được để tách ra mỗi sheet là 50 mail với nhé ! tks mọi người nhiều !
Bạn thử với sub sau
Mã:
Sub mail()
Set a = Sheets("sheet1").[A1].Resize(50)
i = 1
Do
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = 50 * i
[A1].Resize(50) = a.Offset(50 * (i - 1)).Value
i = i + 1
Loop Until 50 * (i - 1) >= Sheets("sheet1").UsedRange.Rows.Count
End Sub
 
Upvote 0

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

Back
Top Bottom