Đôi khi, việc đọc từng dòng một trang tính và lấy dữ liệu từ đó một cách có chọn lọc sẽ rất hữu ích. Một ví dụ dưới đây cho thấy làm thế nào để làm điều này.
Bài viết giả định rằng người đọc đã hiển thị dải băng Nhà phát triển và quen thuộc với Trình soạn thảo VBA. Nếu không, hãy Google “Excel Developer Tab” hoặc “Excel Code Window”.
Ví dụ sau đây xử lý dữ liệu bằng cách kiểm tra từng hàng địa chỉ email và ghép chúng thành một dòng địa chỉ duy nhất. Mặc dù Excel có các hàm Chuyển đổi tích hợp nhưng chúng tôi dự định sử dụng mã của mình để loại trừ một số địa chỉ cụ thể và thêm dấu phân cách.
Ứng dụng của chúng tôi chỉ cần một tờ. Sao chép thông tin bên dưới vào ô A1:
| Địa chỉ email |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| marymontrary@bedlam.org.uk |
Đặt một nút trên biểu mẫu để bắt đầu mã.
Giả sử có hàng trăm email như vậy thay vì chỉ năm; chúng ta muốn gửi cùng một tin nhắn và cùng một bản sao kịch bản cho mỗi email. Có nhiều cách để làm điều này, đáng chú ý nhất là bằng cách gọi trình soạn thảo email, chẳng hạn như Outlook, từ mã VBA. Tuy nhiên, bài tập này phục vụ hai mục đích:
- Chỉ ra cách di chuyển dễ dàng qua một bảng tính;
- Làm nổi bật khả năng của Excel trong việc kiểm tra từng hàng và hành động theo đó.
Mã VBA
Mã VBA sẽ nối tất cả các địa chỉ, chèn dấu chấm phẩy sau mỗi địa chỉ để chúng có thể được dán cùng một lúc vào trường địa chỉ của email. Bạn sẽ lưu ý từ mã rằng, sau khi kiểm tra các hàng, nó sẽ loại trừ các hàng tiếng Pháp.
Chèn một mô-đun và nhập thông tin sau:
Option Explicit
Dim strEmail As String
Dim strAll As String
Sub Main()
strAll = ""
Range("C2") = strAll 'clear previous program results
Sheets("Sheet1").Select
Range("A2").Select
Do While ActiveCell > "" 'loop until row 7
strEmail = ActiveCell
If Right(strEmail, 2) <> "fr" Then 'exclude France
strAll = strAll & strEmail & ";"
End If
Range("A" & ActiveCell.Row + 1).Select 'move on a row in the SAME column
Loop
Range("C2") = strAll
End Sub
Mã này giữ ô hiện hoạt trong cột A, chỉ các hàng tiếp tục. Để tham khảo thông tin ở nơi khác trong một hàng, chúng tôi sẽ sử dụng:
Variable = Activecell.offset(offset rows, offset columns)
Ví dụ: để nhận giá trị từ cột B trong hàng đang hoạt động, mã sẽ đọc Activecell.offset(0, 1). Để có được giá trị của A2 khi chúng ta ở A3 sẽ đọc Activecell.offset(-1, 0).
Để kiểm tra mã của bạn, hãy gán nút cho macro “Chính”.
Một số Nhà cung cấp dịch vụ Internet, để đề phòng chống thư rác, có thể giới hạn số lượng email bạn có thể gửi cùng một lúc. Nếu bạn sử dụng phương pháp này, tốt nhất bạn nên kiểm tra với họ trước khi gửi hàng trăm email cùng một lúc.
Xử lý File Excel bị lỗi

Giới thiệu tác giả:
Felix Hooker là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm sửa rar tham nhũng và các sản phẩm phần mềm phục hồi sql. Để biết thêm thông tin, hãy truy cập www.datanumennăm
