Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Gửi email từ Google Trang tính yêu cầu sử dụng Tập lệnh Google Apps. Nhưng đừng lo lắng, nếu bạn chưa từng tạo một tập lệnh Google Apps nào trước đây, thì việc gửi email rất đơn giản.

Trong hướng dẫn sau, bạn sẽ học cách kiểm tra giá trị của một ô trong Google Trang tính . Nếu giá trị vượt quá giới hạn ngưỡng nhất định, bạn có thể tự động gửi email cảnh báo đến bất kỳ địa chỉ email nào bạn muốn.

Có rất nhiều cách sử dụng cho tập lệnh này. Bạn có thể nhận được cảnh báo nếu thu nhập hàng ngày trong báo cáo bán hàng của bạn giảm xuống dưới một mức nhất định. Hoặc bạn có thể nhận được email nếu nhân viên của bạn báo cáo rằng họ đã lập hóa đơn cho khách hàng quá nhiều giờ trong bảng tính theo dõi dự án của bạn.

Không có vấn đề ứng dụng, kịch bản này là hấp dẫn. Nó cũng sẽ giúp bạn tiết kiệm thời gian theo dõi các bản cập nhật bảng tính của mình theo cách thủ công.

Bước 1: Gửi Email bằng Google Trang tính

Trước khi có thể tạo Google Apps Script để gửi email từ Google Trang tính , bạn cũng sẽ cần một địa chỉ email Gmail mà Google Apps Script sẽ truy cập để gửi email cảnh báo của bạn.

Bạn cũng sẽ cần tạo một bảng tính mới có chứa địa chỉ email.

Chỉ cần thêm cột tên và cột email, và điền chúng với người bạn muốn nhận email cảnh báo.

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Bây giờ bạn đã có địa chỉ email để gửi email cảnh báo, đã đến lúc tạo tập lệnh của bạn.

Để vào trình chỉnh sửa tập lệnh, hãy nhấp vào Công cụ , sau đó nhấp vào Trình chỉnh sửa tập lệnh .

Bạn sẽ thấy một cửa sổ tập lệnh với một hàm mặc định được gọi là  myFunction () . Đổi tên cái này thành SendEmail () .

Tiếp theo, dán đoạn mã sau vào trong hàm SendEmail ():

// Fetch the email address var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("B2"); var emailAddress = emailRange.getValues(); // Send Alert Email. var message = 'This is your Alert email!'; // Second column var subject = 'Your Google Spreadsheet Alert'; MailApp.sendEmail(emailAddress, subject, message);

Đây là cách mã này hoạt động:

  • getRangegetValues ​​kéo giá trị từ ô được chỉ định trong phương thức getRange.
  • var messagevar subject xác định văn bản sẽ tạo email cảnh báo của bạn.
  • Chức năng MailApp.sendEmail cuối cùng cũng thực hiện tính năng gửi email của Google Scripts bằng tài khoản Google được kết nối của bạn.

Lưu tập lệnh bằng cách nhấp vào biểu tượng đĩa , sau đó chạy nó bằng cách nhấp vào biểu tượng chạy (mũi tên phải).

Hãy nhớ rằng Google Script cần quyền truy cập vào tài khoản Gmail của bạn để gửi email. Vì vậy, lần đầu tiên bạn chạy script, bạn có thể thấy một cảnh báo như bên dưới.

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Nhấp vào Xem lại Quyền và bạn sẽ thấy một màn hình cảnh báo khác mà bạn cần phải bỏ qua.

Màn hình cảnh báo này là do bạn đang viết một Tập lệnh Google tùy chỉnh chưa được đăng ký là một tập lệnh chính thức.

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Chỉ cần nhấp vào Nâng cao , sau đó nhấp vào liên kết Đi tới SendEmail (không an toàn) .

Bạn chỉ cần làm điều này một lần. Tập lệnh của bạn sẽ chạy và địa chỉ email bạn đã chỉ định trong bảng tính của mình sẽ nhận được một email như bên dưới.

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Bước 2: Đọc giá trị từ một ô trong Google Trang tính

Bây giờ bạn đã viết thành công Tập lệnh Google Apps có thể gửi email cảnh báo, đã đến lúc làm cho email cảnh báo đó hoạt động hiệu quả hơn.

Bước tiếp theo bạn sẽ học là cách đọc giá trị dữ liệu từ Bảng tính Google, kiểm tra giá trị và đưa ra thông báo bật lên nếu giá trị đó cao hơn hoặc dưới giới hạn trên.

Trước khi có thể thực hiện việc này, bạn cần tạo một trang tính khác trong Bảng tính Google mà bạn đang làm việc. Gọi trang tính mới này là “MyReport”.

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Hãy nhớ rằng ô D2 là ô bạn sẽ muốn kiểm tra và so sánh. Hãy tưởng tượng rằng bạn muốn biết mỗi tháng liệu tổng doanh thu của bạn có giảm xuống dưới 16.000 đô la hay không.

Hãy tạo Tập lệnh Google Apps để thực hiện điều đó.

Quay lại cửa sổ Trình chỉnh sửa tập lệnh của bạn bằng cách nhấp vào Công cụ và sau đó nhấp vào Trình chỉnh sửa tập lệnh .

Nếu bạn đang sử dụng cùng một bảng tính, bạn vẫn sẽ có hàm  SendEmail () trong đó. Cắt mã đó và dán vào Notepad. Bạn sẽ cần nó sau.

Dán hàm sau vào cửa sổ mã.

function CheckSales() { // Fetch the monthly sales var monthSalesRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MyReport").getRange("D2"); var monthSales = monthSalesRange.getValue(); var ui = SpreadsheetApp.getUi(); // Check totals sales if (monthSales < 16000){="" ui.alert('sales="" too="" low!');="" }="">

Cách mã này hoạt động:

  • Tải giá trị từ ô D2 vào biến monthSales .
  • Câu lệnh IF so sánh doanh thu hàng tháng trong ô D2 với 16.000 đô la
  • Nếu giá trị trên 16.000, mã sẽ kích hoạt hộp thông báo của trình duyệt với cảnh báo.

Lưu mã này và chạy nó. Nếu nó hoạt động chính xác, bạn sẽ thấy thông báo cảnh báo sau trong trình duyệt của mình.

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Gi��� bạn đã có Tập lệnh Google Apps có thể gửi cảnh báo qua email và một tập lệnh khác có thể so sánh giá trị từ bảng tính, bạn đã sẵn sàng kết hợp cả hai và gửi cảnh báo thay vì kích hoạt thông báo cảnh báo.

Bước 3: Kết hợp tất cả lại với nhau

Bây giờ đã đến lúc kết hợp hai tập lệnh bạn đã tạo thành một tập lệnh duy nhất.

Tại thời điểm này, bạn sẽ có một bảng tính với một tab được gọi là Sheet1 có chứa người nhận email cảnh báo. Tab khác có tên MyReport chứa tất cả thông tin bán hàng của bạn.

Quay lại Trình chỉnh sửa tập lệnh, đã đến lúc đưa mọi thứ bạn đã học được cho đến nay để thực hành.

Thay thế tất cả mã trong trình chỉnh sửa tập lệnh bằng hai chức năng của bạn, được chỉnh sửa như được hiển thị ở đây.

function CheckSales() { // Fetch the monthly sales var monthSalesRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MyReport").getRange("D2"); var monthSales = monthSalesRange.getValue(); // Check totals sales if (monthSales < 16000){="" fetch="" the="" email="" address="" var="" emailrange="SpreadsheetApp.getActiveSpreadsheet().getSheetByName(" sheet1").getrange("b2");"="" var="" emailaddress="emailRange.getValues();" send="" alert="" email.="" var="" message='This month your sales were ' +="" monthsales;="" second="" column="" var="" subject='Low Sales Alert' ;="" mailapp.sendemail(emailaddress,="" subject,="" message);="" }="">

Chú ý các chỉnh sửa ở đây.

Bên trong câu lệnh IF, hãy dán tập lệnh SendEmail bên trong hàm CheckSales () bên trong dấu ngoặc câu lệnh if.

Thứ hai, nối biến monthSales vào cuối thư email bằng cách sử dụng ký tự + .

Việc duy nhất cần làm là kích hoạt hàm CheckSales () mỗi tháng.

Để làm điều này, trong trình chỉnh sửa tập lệnh:

  1. Bấm vào mục menu Chỉnh sửa , sau đó bấm vào trình kích hoạt của dự án Hiện tại .
  2. Ở cuối màn hình, nhấp vào tạo trình kích hoạt mới .
  3. Chọn chức năng CheckSales để chạy.
  4. Thay đổi Chọn nguồn sự kiện thành theo thời gian .
  5. Thay đổi  Chọn loại trình kích hoạt dựa trên thời gian thành Bộ hẹn giờ tháng .

Nhấp vào Lưu để hoàn tất trình kích hoạt.

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Hàng tháng, tập lệnh mới của bạn sẽ chạy và so sánh tổng số tiền bán hàng hàng tháng trong ô D2 với 16.000 đô la.

Nếu ít hơn, nó sẽ gửi một email cảnh báo thông báo cho bạn về doanh số bán hàng tháng thấp.

Sử dụng Google Trang tính để gửi email dựa trên giá trị ô

Như bạn có thể thấy, Google Apps Scripts đóng gói rất nhiều chức năng trong một gói nhỏ. Chỉ với một vài dòng mã đơn giản, bạn có thể làm một số điều khá tuyệt vời.

Nếu bạn muốn thử nghiệm thêm, hãy thử thêm giới hạn so sánh $ 16,000 vào một ô khác trong bảng tính, sau đó đọc nó vào tập lệnh của bạn trước khi thực hiện so sánh. Bằng cách này, bạn có thể thay đổi giới hạn chỉ bằng cách thay đổi giá trị trong trang tính.

Bằng cách tinh chỉnh mã và thêm các khối mã mới, bạn có thể xây dựng dựa trên những điều đơn giản mà bạn học được để cuối cùng tạo ra một số Tập lệnh Google tuyệt vời.

Tự động hóa quá trình

Cho đến nay vẫn tốt, nhưng tập lệnh ở trên sẽ chỉ chạy thủ công nếu chúng ta không đặt bất kỳ trình kích hoạt nào. May mắn thay, Google đã làm cho tính năng tự động hóa được kích hoạt trở nên đơn giản để cấu hình. Dưới đây là các bước. 

Trong trình chỉnh sửa Apps Script, hãy nhấp vào biểu tượng Trình kích hoạt trên thanh bên trái (trông giống như một chiếc đồng hồ nhỏ).

Nhấp vào liên kết tạo trình kích hoạt mớir hoặc liên kết Thêm trình kích hoạt nút ở góc dưới cùng bên phải của trang Trình kích hoạt.

Trong menu thả xuống Chọn chức năng sẽ chạy , hãy chọn gửiEmail< một hàm i=4>.

Trong menu thả xuống Chọn nguồn sự kiện , hãy chọn Theo thời gian.

Trong menu thả xuống Chọn loại trình kích hoạt dựa trên thời gian , hãy chọn tần suất bạn muốn (ví dụ: Đồng hồ tính giờ trong ngày cho email hàng ngày, Đồng hồ tính giờ trong tuần cho email hàng tuần, v.v.).

Nếu có thể, hãy chọn phạm vi thời gian hoặc ngày trong tuần mong muốn.

Nhấp vào Lưu để tạo trình kích hoạt.

Sau khi lưu, hãy nhấp vào nút Triển khai ở góc trên cùng bên phải và làm theo hướng dẫn để gắn nhãn và xác định việc triển khai. Bạn sẽ cần cấp quyền tự động hóa để chạy và điều tương tự cũng xảy ra với chính tập lệnh.  

Đối với trình kích hoạt nhất định, vì ví dụ của chúng tôi là về việc gửi lời nhắc hóa đơn nên chúng tôi giả sử đây là những lời nhắc hàng tháng và việc gửi chúng vào ngày đầu tiên của tháng trong khoảng thời gian từ 1 giờ chiều đến 2 giờ chiều là phù hợp. Nhưng tất nhiên, bạn có thể thay đổi tần suất và thời gian tùy theo nhu cầu của mình. 

Cách gửi email có tệp đính kèm

Để chỉ cho bạn cách gửi email có tệp đính kèm, chúng tôi sẽ sử dụng lại trang tính mẫu có lời nhắc hóa đơn và cấu trúc lại đoạn mã để bao gồm tệp đính kèm. Bây giờ, chúng ta sẽ bắt đầu với hàm và mẫu email sẽ xuất hiện sau trong mã. gửiEmailNhắc nhở

Chúng ta nên nhấn mạnh rằng đoạn mã bên dưới lấy tệp đính kèm email từ thư mục Google Drive, trong đó điều quan trọng là phải bao gồm ID thư mục và tuân theo quy ước đặt tên nhất định. Thông tin thêm về điều đó trong phần Hãy chia nhỏ phần mã

function sendEmailReminders() { // Lấy sheet đang hoạt động var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Lấy phạm vi dữ liệu (không bao gồm hàng tiêu đề) var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()); // Lấy các giá trị từ phạm vi dữ liệu var data = dataRange.getValues(); // Lặp qua các hàng dữ liệu for (var i = 0; i < data.length; i++) { var row = data[i]; // Lấy giá trị từ mỗi cột var businessName = row[0]; var email = row[1]; varvoiceNumber = row[2]; varvoiceAmount = row[3]; var doDate = row[4]; var chủ đề = hàng [5]; // Nội dung email var emailBody = "Kính gửi " + tên doanh nghiệp + ",\n\n" + "Đây là lời nhắc nhở rằng Hóa đơn #" + Số hóa đơn + " với giá $" + số tiền hóa đơn + " đến hạn vào " + ngày đáo hạn + ".\n" + "Xin vui lòng tìm hóa đơn đính kèm.\n\n" + "Cảm ơn bạn đã quan tâm kịp thời tới vấn đề này."; // Đính kèm hóa đơn tương ứng - Bạn cần cung cấp đúng ID thư mục nơi hóa đơn của bạn được lưu trữ varvoiceFolderId = 'YOUR_FOLDER_ID_HERE'; varvoiceFolder = DriveApp.getFolderById(invoiceFolderId); varvoiceFiles =voiceFolder.getFilesByName(invoiceNumber + '.pdf'); // Giả sử file hóa đơn có định dạng PDF varvoiceFile; if (invoiceFiles.hasNext()) { billFile =voiceFiles.next(); } else { // Nếu không tìm thấy tệp hóa đơn, bạn có thể bỏ qua hàng này hoặc ghi lỗi console.error("Không tìm thấy tệp hóa đơn cho số hóa đơn: " + số hóa đơn); Tiếp tục; } // Gửi email có tệp đính kèm MailApp.sendEmail({ to: email, topic: topic, body: emailBody, attachments: [invoiceFile] }); } }

Hãy chia nhỏ mã

1. Xác định hàm:sendEmailReminders

hàm sendEmailReminders() {

Dòng này khai báo một hàm có tên , hàm này sẽ chứa mã để gửi lời nhắc qua email kèm theo tệp đính kèm.sendEmailReminders

2. Lấy bảng hoạt động:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

Dòng này truy xuất trang tính đang hoạt động từ tài liệu Google Trang tính hiện đang mở.

3. Lấy phạm vi dữ liệu (không bao gồm hàng tiêu đề):

var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());

Dòng này lấy phạm vi dữ liệu trong trang tính, ngoại trừ hàng tiêu đề. Nó bắt đầu từ hàng thứ hai (hàng 2) và cột đầu tiên (cột 1) và kéo dài đến hàng cuối cùng và cột cuối cùng của trang tính.

Lưu ý phụ: Khi tạo trang tính tùy chỉnh, bạn cần sửa đổi để khớp với trang tính của mình. phạm vi dữ liệu

4. Lấy các giá trị từ dải dữ liệu:

var data = dataRange.getValues();

Dòng này lấy các giá trị (nội dung) từ phạm vi ô được xác định ở bước trước.

5. Lặp qua các hàng dữ liệu:

for (var i = 0; i < data.length; i++) { var row = data[i];

Vòng lặp này lặp qua từng hàng trong mảng. Biến đại diện cho hàng dữ liệu hiện tại trong mỗi lần lặp.fordatarow

6. Lấy giá trị từ mỗi cột:

var businessName = row[0]; var email = row[1]; varvoiceNumber = row[2]; varvoiceAmount = row[3]; var doDate = row[4]; var chủ đề = hàng [5];

Các dòng trên trích xuất các giá trị từ mỗi cột trong hàng dữ liệu hiện tại. Mỗi giá trị sau đó được gán cho một biến để dễ tham khảo trong tập lệnh. Các giá trị đã cho là tùy chỉnh cho bảng mẫu của chúng tôi. 

7. Tạo nội dung email:

var emailBody = "Kính gửi " + tên doanh nghiệp + ",\n\n" + "Đây là lời nhắc nhở rằng Hóa đơn #" + Số hóa đơn + " với giá $" + số tiền hóa đơn + " đến hạn vào " + ngày đáo hạn + ".\n" + "Xin vui lòng tìm hóa đơn đính kèm.\n\n" + "Cảm ơn bạn đã quan tâm kịp thời tới vấn đề này.";

Mã xây dựng nội dung email bằng cách sử dụng các giá trị được trích xuất từ ​​trang tính. Nội dung email là một chuỗi bao gồm tên doanh nghiệp, số hóa đơn, số tiền hóa đơn và ngày đến hạn.

8. Lấy file hóa đơn tương ứng:

varvoiceFolderId = 'YOUR_FOLDER_ID_HERE'; varvoiceFolder = DriveApp.getFolderById(invoiceFolderId); varvoiceFiles =voiceFolder.getFilesByName(invoiceNumber + '.pdf'); varvoiceFile; if (invoiceFiles.hasNext()) { billFile =voiceFiles.next(); } else { console.error("Không tìm thấy tệp hóa đơn cho số hóa đơn: " + số hóa đơn); Tiếp tục; }

Những dòng này truy xuất tệp hóa đơn được liên kết với hàng hiện tại. 

Đầu tiên, thư mục tệp hóa đơn được truy cập bằng ID thư mục của nó. Đảm bảo thay thế bằng ID thư mục thực tế. CỦA BẠN_FOLDER_ID_HERE

Xin lưu ý rằng quy ước đặt tên trong ví dụ của chúng tôi là và hóa đơn thực tế có tên là ‘123456.pdf’. Nếu tệp đính kèm của bạn được đặt tên khác, bạn sẽ cần cập nhật định dạng. (Số hóa đơn + '.pdf')

Tiếp theo, tập lệnh tìm kiếm tệp có cùng tên với số hóa đơn (giả sử tệp ở định dạng PDF). 

Nếu tìm thấy tệp thì tệp đó sẽ được gán cho biến; nếu không, tập lệnh sẽ ghi thông báo lỗi và chuyển sang hàng tiếp theo.invoiceFile

9. Gửi email có file đính kèm:

MailApp.sendEmail({ to: email, topic: topic, body: emailBody, attachments: [invoiceFile] });

Dòng này gửi nội dung và tệp đính kèm email và đây là kết quả bạn sẽ nhận được. Ngoài ra, tất cả các bước tự động hóa đều áp dụng như mô tả trước đây và việc duy trì kích hoạt hàng tháng là điều hợp lý vì đây là về việc gửi lời nhắc hóa đơn. 

Gửi email HTML bằng GSheets

Để gửi email HTML, bạn có thể thực hiện một số sửa đổi khá đơn giản đối với tập lệnh được mô tả trước đó. Đây là: 

function sendEmailReminders() { // Lấy sheet đang hoạt động var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Lấy phạm vi dữ liệu (không bao gồm hàng tiêu đề) var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()); // Lấy các giá trị từ phạm vi dữ liệu var data = dataRange.getValues(); // Lặp qua các hàng dữ liệu for (var i = 0; i < data.length; i++) { var row = data[i]; // Lấy giá trị từ mỗi cột var businessName = row[0]; var email = row[1]; varvoiceNumber = row[2]; varvoiceAmount = row[3]; var doDate = row[4]; var chủ đề = hàng [5]; // Nội dung email HTML var emailBodyHtml = "<p>Kính gửi " + tên doanh nghiệp + ",</p>" + "<p>Đây là lời nhắc nhở rằng Hóa đơn #" + Số hóa đơn + " với giá $" + số tiền hóa đơn + " đến hạn vào " + ngày đáo hạn + ".</p>" + "<p>Xin vui lòng tìm hóa đơn đính kèm.</p>" + "<p>Cảm ơn bạn đã quan tâm kịp thời đến vấn đề này.</p>"; // Đính kèm hóa đơn tương ứng - Bạn cần cung cấp đúng ID thư mục nơi hóa đơn của bạn được lưu trữ varvoiceFolderId = 'YOUR_FOLDER_ID_HERE'; varvoiceFolder = DriveApp.getFolderById(invoiceFolderId); varvoiceFiles =voiceFolder.getFilesByName(invoiceNumber + '.pdf'); // Giả sử file hóa đơn có định dạng PDF varvoiceFile; if (invoiceFiles.hasNext()) { billFile =voiceFiles.next(); } else { // Nếu không tìm thấy tệp hóa đơn, bạn có thể bỏ qua hàng này hoặc ghi lỗi console.error("Không tìm thấy tệp hóa đơn cho số hóa đơn: " + số hóa đơn); Tiếp tục; } // Gửi email có tệp đính kèm MailApp.sendEmail({ to: email, topic: topic, htmlBody: emailBodyHtml, attachments: [invoiceFile] }); } }

Trong phiên bản này, văn bản thuần túy được thay thế bằng một biến chứa nội dung có định dạng HTML. emailBodyemailNội dungHtml

Khi gọi hàm, thuộc tính nội dung cũng được thay thế bằng thuộc tính sẽ gửi email dưới dạng email HTML.MailApp.sendEmail()htmlBody

Ghi chú bên lề: 

Chúng tôi đang sử dụng thay vì trong tập lệnh để thuận tiện. Dù vậy, chắc chắn cả hai tùy chọn đều có thể đọc được dễ dàng hơn. Dù sao đi nữa, bạn có thể thoải mái định dạng lại tập lệnh và thay thế toán tử nối bằng phần giữ chỗ khi nội suy chuỗi. varconstconst${biểu thức}

Ngoài ra, không có tập lệnh nào bao gồm các hàm vì chúng không cần thiết trong các ví dụ của chúng tôi. Tuy nhiên, tất nhiên, bạn cũng có thể thêm và thậm chí tự động hóa với các loại tập lệnh này. bccbcc

Cuối cùng, bạn có thể thêm gia vị cho mọi thứ bằng cách thêm các kiểu CSS tùy chỉnh, xem chức năng cập nhật bên dưới. var emailBodyHtml =

// Nội dung email HTML với các kiểu CSS var emailBodyHtml = "<html><head><style>" + "nội dung {họ phông chữ: Arial, sans-serif;}" + "p {cỡ chữ: 14px;}" + ".invoice-info {font-weight: đậm; màu sắc: #4a4a4a;}" + "</style></head><body>" + "<p>Kính gửi <span class='invoice-info'>" + tên doanh nghiệp + "</span>,</p>" + "<p>Đây là lời nhắc nhở rằng Invoice #<span class='invoice-info'>" + Số hóa đơn + "</span> cho $<span class='invoice-info'>" + Số tiền hóa đơn + "</span> đến hạn vào <span class='invoice-info'>" + ngày đáo hạn + "</span>.</p>" + "<p>Xin vui lòng tìm hóa đơn đính kèm.</p>" + "<p>Cảm ơn bạn đã quan tâm kịp thời đến vấn đề này.</p>" + "</body></html>";

Lời khuyên chuyên nghiệp: 

  • Hãy sử dụng dễ dàng, một số nhà cung cấp hộp thư có thể không hỗ trợ và hiển thị các email có phong cách đậm nét một cách chính xác hoặc hoàn toàn không hỗ trợ. <phong cách>
  • Sử dụng Kiểm tra email Mailtrap để xem nhà cung cấp hộp thư hỗ trợ email HTML của bạn đến mức nào. 
  • Xin nhấn mạnh lại, Nếu bạn cần gửi với số lượng lớn, tốt nhất bạn nên sử dụng MTA phù hợp thay vì chức năng. gửiEmail
  • Lưu ý đó, hãy lưu ý đến các giới hạn tài khoản Gmail của bạn. Những điều này khác nhau đối với Google Workspace và/hoặc tài khoản riêng tư của bạn. 

Làm cách nào để gửi email kích hoạt từ Google Trang tính?

Khi một ô đạt đến một giá trị nhất định

Chúng tôi sẽ chỉ cho bạn cách gửi email tự động dựa trên giá trị ô. Trong ví dụ của chúng tôi, hóa đơn sẽ được gửi khi ô Số tiền hóa đơn đạt đến '0' cho biết khách hàng đã rời bỏ. 

Giá trị ô nhất định sẽ kích hoạt một email rời bỏ tùy chỉnh để liên hệ ngay với khách hàng. Và một lần nữa, các bước tự động hóa vẫn giữ nguyên, bạn vẫn có thể sử dụng trình kích hoạt hàng tháng cho những email này. 

Hãy nhớ rằng tập lệnh giống với tập lệnh chúng tôi đã sử dụng để gửi email và tệp đính kèm HTML. Nhưng nó có một lớp chức năng khác để giới thiệu logic điều kiện được mô tả. Đây là mã. 

function sendEmailReminders() { // Lấy sheet đang hoạt động var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Lấy phạm vi dữ liệu (không bao gồm hàng tiêu đề) var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()); // Lấy các giá trị từ phạm vi dữ liệu var data = dataRange.getValues(); // Lặp qua các hàng dữ liệu for (var i = 0; i < data.length; i++) { var row = data[i]; // Lấy giá trị từ mỗi cột var businessName = row[0]; var email = row[1]; varvoiceNumber = row[2]; varvoiceAmount = row[3]; var doDate = row[4]; var chủ đề = hàng [5]; // Xác định nội dung email dựa trên số tiền hóa đơn var emailBodyHtml; if (invoiceAmount == 0) { // Tiêu đề email của khách hàng bị loại bỏ = "Thông báo của khách hàng bị loại bỏ" emailBodyHtml = "<html><head><style>" + "nội dung {họ phông chữ: Arial, sans-serif;}" + "p {cỡ chữ: 14px;}" + ".invoice-info {font-weight: đậm; màu sắc: #4a4a4a;}" + "</style></head><body>" + "<p>Kính gửi " + tên doanh nghiệp + ",</p>" + "<p>Chúng tôi nhận thấy rằng số tiền trên hóa đơn của bạn là $0. Chúng tôi rất tiếc khi thấy bạn rời đi và sẽ đánh giá cao bất kỳ phản hồi nào về lý do khiến bạn quyết định ngừng sử dụng dịch vụ của chúng tôi.</p>" + "<p>Nếu có bất kỳ điều gì chúng tôi có thể làm để cải thiện dịch vụ của mình hoặc giành lại mối quan hệ kinh doanh với bạn, vui lòng cho chúng tôi biết.</p>" + "<p>Cảm ơn bạn vì công việc kinh doanh trước đây của bạn.</p>" + "</body></html>"; } else { // Email hóa đơn thông thường EmailBodyHtml = "<html><head><style>" + "nội dung {họ phông chữ: Arial, sans-serif;}" + "p {cỡ chữ: 14px;}" + ".invoice-info {font-weight: đậm; màu sắc: #4a4a4a;}" + "</style></head><body>" + "<p>Kính gửi <span class='invoice-info'>" + tên doanh nghiệp + "</span>,</p>" + "<p>Đây là lời nhắc nhở rằng Invoice #<span class='invoice-info'>" + Số hóa đơn + "</span> cho $<span class='invoice-info'>" + Số tiền hóa đơn + "</span> đến hạn vào <span class='invoice-info'>" + ngày đáo hạn + "</span>.</p>" + "<p>Xin vui lòng tìm hóa đơn đính kèm.</p>" + "<p>Cảm ơn bạn đã quan tâm kịp thời đến vấn đề này.</p>" + "</body></html>"; } // Đính kèm hóa đơn tương ứng - Bạn cần cung cấp đúng ID thư mục nơi hóa đơn của bạn được lưu trữ varvoiceFolderId = 'YOUR_FOLDER_ID_HERE'; varvoiceFolder = DriveApp.getFolderById(invoiceFolderId); varvoiceFiles =voiceFolder.getFilesByName(invoiceNumber + '.pdf'); // Giả sử file hóa đơn có định dạng PDF varvoiceFile; if (invoiceFiles.hasNext()) { billFile =voiceFiles.Kế tiếp(); } else { // Nếu không tìm thấy tệp hóa đơn, bạn có thể bỏ qua hàng này hoặc ghi lỗi console.error("Không tìm thấy tệp hóa đơn cho số hóa đơn: " + số hóa đơn); Tiếp tục; } // Gửi email có tệp đính kèm MailApp.sendEmail({ to: email, topic: topic, htmlBody: emailBodyHtml, attachments: [invoiceFile] }); } }

Xuống mã ngắt 

Xin lưu ý rằng chúng tôi chỉ tập trung vào những gì có trong hàm để tránh lặp lại những gì đã được mô tả. emailNội dungHtml

Phần cập nhật của mã xác định nội dung của nội dung email dựa trên số tiền hóa đơn. Nếu số tiền trong hóa đơn là thì đó được coi là khách hàng rời bỏ và mẫu email khác sẽ được sử dụng. Đây là bảng phân tích mã: ‘0’

var emailBodyHtml;

Nó khai báo một biến có tên và lưu trữ nội dung của nội dung email. Và ban đầu nó không được xác định.emailBodyHtml

if (invoiceAmount == 0) { ... }

Câu lệnh kiểm tra xem số tiền hóa đơn có bằng 0 hay không. Nếu đúng như vậy thì mã bên trong dấu ngoặc nhọn sẽ được thực thi. Khối này chứa mẫu email của khách hàng rời bỏ.if(`{}`)

chủ đề = "Thông báo từ bỏ khách hàng";

Dòng này đặt chủ đề email thành dành cho khách hàng rời bỏ."Thông báo khách hàng rời bỏ"

emailBodyHtml = "<html><head><style>" + ...

 Dòng này đặt giá trị của biến cho mẫu email của khách hàng rời bỏ. Mẫu là một chuỗi HTML có các kiểu CSS được xác định trong phần. Nội dung email chứa phần giữ chỗ cho tên doanh nghiệp và thông báo gửi tới khách hàng.emailBodyHtml<head>

} khác { ... }

Khối này được thực thi khi số tiền hóa đơn không bằng 0. Khối này đặt biến thành mẫu email hóa đơn thông thường. Mẫu email là một chuỗi HTML có các kiểu CSS được xác định trong phần. Nội dung email chứa phần giữ chỗ cho tên doanh nghiệp, số hóa đơn, số tiền hóa đơn và ngày đến hạn.elsemailBodyHtml<head>

Bằng cách sử dụng logic có điều kiện này, tập lệnh sẽ gửi một nội dung email khác dựa trên số tiền trong hóa đơn là (khách hàng rời bỏ) hay khác 0 (hóa đơn thông thường). 0

Khi giá trị ô thay đổi

Bây giờ, chúng tôi sẽ lấy tập lệnh tương tự được sử dụng ở trên và mở rộng tập lệnh đó để bao gồm một trường hợp sử dụng khác – khách hàng nâng cấp và người quản lý tài khoản cần gửi email “Cảm ơn” kèm theo hóa đơn. 

Để giải thích, ý tưởng là mỗi tháng người quản lý tài khoản sẽ có một Trang tính mới (Bảng 2 trong ví dụ của chúng tôi) với thông tin xác thực của khách hàng. 

Bây giờ, mã sẽ so sánh hai trang tính và gửi email “Cảm ơn” tự động, thay vì email hóa đơn thông thường, tới những khách hàng đã nâng cấp (///span> Số tiền hóa đơn lớn hơn so với cái trước). 

Ngoài ra, bạn không cần phải chạm vào email bị hủy vì có khả năng ai đó đã quyết định ngừng sử dụng dịch vụ tưởng tượng của chúng tôi. Đây là kịch bản.

hàm sendEmailReminders() { var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2"); var dataRange1 = sheet1.getRange(2, 1, sheet1.getLastRow() - 1, sheet1.getLastColumn()); var dataRange2 = sheet2.getRange(2, 1, sheet2.getLastRow() - 1, sheet2.getLastColumn()); var data1 = dataRange1.getValues(); var data2 = dataRange2.getValues(); for (var i = 0; i < data1.length; i++) { var row1 = data1[i]; var row2 = data2[i]; var businessName = row1[0]; var email = row1[1]; var hóa đơnNumber = row1[2]; varvoiceAmount1 = parsFloat(row1[3].toString().replace('$', '').replace(',', ''). 39;.')); varvoiceAmount2 = parsFloat(row2[3].toString().replace('$', '').replace(',', ''). 39;.')); if (isNaN(invoiceAmount1) || isNaN(invoiceAmount2)) { console.error("Số tiền hóa đơn không hợp lệ cho doanh nghiệp: " + businessName + ". hóa đơnAmount1: " + hóa đơnAmount1 + ", hóa đơnAmount2: " + hóa đơnAmount2 ); Tiếp tục; } var doDate = row1[4]; chủ đề var; var emailBodyHtml; if (invoiceAmount1 < BillAmount2) { console.log("Đang gửi 'Cảm ơn bạn đã nâng cấp' gửi email tới " + email + ".voiceAmount1: " +voiceAmount1 + ",voiceAmount2: " + Số lượng hóa đơn2); chủ đề = "Cảm ơn bạn đã nâng cấp"; emailBodyHtml = "<html><body>" + "<p>Kính gửi " + tên doanh nghiệp + ",</p>" + "<p>Cảm ơn bạn đã nâng cấp! Chúng tôi đánh giá cao hoạt động kinh doanh của bạn và mong được phục vụ bạn.</p>" + "<p>Trân trọng,</p>" + "<p>Công ty của bạn</p>" + "</body></html>"; MailApp.sendEmail({ to: email, topic: topic, htmlBody: emailBodyHtml }); } else if (invoiceAmount1 == 0) { console.log("Gửi email 'Thông báo từ bỏ khách hàng' tới " + email + ".voiceAmount1: " +voiceAmount1); chủ đề = "Thông báo từ bỏ khách hàng"; emailBodyHtml = "<html><head><style>" + "nội dung {họ phông chữ: Arial, sans-serif;}" + "p {cỡ chữ: 14px;}" + ".invoice-info {font-weight: đậm; màu sắc: #4a4a4a;}" + "</style></head><body>" + "<p>Kính gửi " + tên doanh nghiệp + ",</p>" + "<p>Chúng tôi nhận thấy rằng số tiền trên hóa đơn của bạn là $0. Chúng tôi rất tiếc khi thấy bạn rời đi và sẽ đánh giá cao bất kỳ phản hồi nào về lý do khiến bạn quyết định ngừng sử dụng dịch vụ của chúng tôi.</p>" + "<p>Nếu có bất kỳ điều gì chúng tôi có thể làm để cải thiện dịch vụ của mình hoặc giành lại mối quan hệ kinh doanh với bạn, vui lòng cho chúng tôi biết.</p>" + "<p>Cảm ơn bạn vì công việc kinh doanh trước đây của bạn.</p>" + "</body></html>"; MailApp.sendEmail({ tới: email, chủ đề: chủ đề, htmlBody:emailBodyHtml }); } else { console.log("Gửi email 'Lời nhắc Hóa đơn' tới " + email + ". BillAmount1: " + BillAmount1 + ", BillAmount2: " + BillAmount2); chủ đề = "Nhắc nhở Hóa đơn"; emailBodyHtml = "<html><head><style>" + "nội dung {họ phông chữ: Arial, sans-serif;}" + "p {cỡ chữ: 14px;}" + ".invoice-info {font-weight: đậm; màu sắc: #4a4a4a;}" + "</style></head><body>" "<p>Kính gửi <span class='invoice-info'>" + tên doanh nghiệp + "</span>,</p>" + "<p>Đây là lời nhắc nhở rằng Invoice #<span class='invoice-info'>" + Số hóa đơn + "</span> cho $<span class='invoice-info'>" + số tiền hóa đơn1 + "</span> đến hạn vào <span class='invoice-info'>" + ngày đáo hạn + "</span>.</p>" + "<p>Xin vui lòng tìm hóa đơn đính kèm.</p>" + "<p>Cảm ơn bạn đã quan tâm kịp thời đến vấn đề này.</p>" + "</body></html>"; // Đính kèm hóa đơn tương ứng - Bạn cần cung cấp đúng ID thư mục nơi hóa đơn của bạn được lưu trữ varvoiceFolderId = 'YOUR_FOLDER_ID_HERE'; varvoiceFolder = DriveApp.getFolderById(invoiceFolderId); varvoiceFiles =voiceFolder.getFilesByName(invoiceNumber + '.pdf'); // Giả sử file hóa đơn có định dạng PDF varvoiceFile; if (invoiceFiles.hasNext()) { billFile =voiceFiles.next(); } else { // Nếu không tìm thấy tệp hóa đơn, bạn có thể bỏ qua hàng này hoặc ghi lỗi console.error("Không tìm thấy tệp hóa đơn cho số hóa đơn: " + số hóa đơn); Tiếp tục; } MailApp.sendEmail({ to: email, topic: topic, htmlBody: emailBodyHtml, attachments: [invoiceFile] }); } } }</p>" + "</body></html>"; // Đính kèm hóa đơn tương ứng - Bạn cần cung cấp đúng ID thư mục nơi hóa đơn của bạn được lưu trữ varvoiceFolderId = 'YOUR_FOLDER_ID_HERE'; varvoiceFolder = DriveApp.getFolderById(invoiceFolderId); varvoiceFiles =voiceFolder.getFilesByName(invoiceNumber + '.pdf'); // Giả sử file hóa đơn có định dạng PDF varvoiceFile; if (invoiceFiles.hasNext()) { billFile =voiceFiles.next(); } else { // Nếu không tìm thấy tệp hóa đơn, bạn có thể bỏ qua hàng này hoặc ghi lỗi console.error("Không tìm thấy tệp hóa đơn cho số hóa đơn: " + số hóa đơn); Tiếp tục; } MailApp.sendEmail({ to: email, topic: topic, htmlBody: emailBodyHtml, attachments: [invoiceFile] }); } } }</p>" + "</body></html>"; // Đính kèm hóa đơn tương ứng - Bạn cần cung cấp đúng ID thư mục nơi hóa đơn của bạn được lưu trữ varvoiceFolderId = 'YOUR_FOLDER_ID_HERE'; varvoiceFolder = DriveApp.getFolderById(invoiceFolderId); varvoiceFiles =voiceFolder.getFilesByName(invoiceNumber + '.pdf'); // Giả sử file hóa đơn có định dạng PDF varvoiceFile; if (invoiceFiles.hasNext()) { billFile =voiceFiles.next(); } else { // Nếu không tìm thấy tệp hóa đơn, bạn có thể bỏ qua hàng này hoặc ghi lỗi console.error("Không tìm thấy tệp hóa đơn cho số hóa đơn: " + số hóa đơn); Tiếp tục; } MailApp.sendEmail({ to: email, topic: topic, htmlBody: emailBodyHtml, attachments: [invoiceFile] }); } } }

Xuống mã ngắt 

1. Tập lệnh bắt đầu bằng cách lấy tham chiếu đến cả Sheet1 và Sheet2.

var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");

2. Sau đó, nó lấy dữ liệu từ cả hai trang tính, bắt đầu từ hàng thứ hai để loại trừ các tiêu đề.

var dataRange1 = sheet1.getRange(2, 1, sheet1.getLastRow() - 1, sheet1.getLastColumn()); var dataRange2 = sheet2.getRange(2, 1, sheet2.getLastRow() - 1, sheet2.getLastColumn()); var data1 = dataRange1.getValues(); var data2 = dataRange2.getValues();

3. Tập lệnh lặp lại các hàng trong cả hai trang tính (giả sử số hàng trong cả hai trang tính là như nhau). Nó so sánh số tiền hóa đơn từ Trang 1 và Trang 2 cho mỗi hàng tương ứng.

for (var i = 0; i < data1.length; i++) { var row1 = data1[i]; var row2 = data2[i]; // Lấy số tiền hóa đơn từ cả hai trang varvoiceAmount1 = parsFloat(row1[3].toString().replace('$', '').replace(' ,', '.')); varvoiceAmount2 = parsFloat(row2[3].toString().replace('$', '').replace(',', ''). 39;.'));

Sao chép

4. Sau đó, tập lệnh sẽ kiểm tra các điều kiện gửi các loại email khác nhau dựa trên việc so sánh số tiền hóa đơn từ Trang 1 và Trang 2.

if (invoiceAmount1 < billAmount2) { // Gửi "Cảm ơn bạn đã nâng cấp" email } else if (invoiceAmount1 == 0) { // Gửi "Thông báo từ bỏ khách hàng" email } else { // Gửi "Nhắc nhở Hóa đơn" email }

Sao chép

So sánh chính là , kiểm tra xem số tiền hóa đơn trong Trang 1 có nhỏ hơn số tiền hóa đơn trong Trang 2 cho cùng một hàng hay không (tức là cùng một khách hàng). Nếu đúng, tập lệnh sẽ cho rằng khách hàng đã nâng cấp và gửi email. Nếu không, nó sẽ kiểm tra các điều kiện khác (lời nhắc khuấy hoặc hóa đơn thông thường) và gửi email thích hợp.if (invoiceAmount1 <voiceAmount2)"Cảm ơn bạn đã nâng cấp"

Khi tệp Google Trang tính được cập nhật

Bây giờ, bạn nên thảo luận về một trường hợp sử dụng khác, trong đó những người không phải là người quản lý tài khoản đều có quyền truy cập vào bảng tính. 

Giả sử rằng người quản lý tài khoản của chúng tôi có một ngày dành riêng để gặp gỡ khách hàng và trả lời các câu hỏi của họ. Khách hàng có quyền truy cập vào bảng tính nơi họ có thể mô tả ngắn gọn vấn đề và đặt chỗ. 

Được rồi, có nhiều cách tốt hơn để xử lý các yêu cầu và đặt chỗ của khách hàng. Nhưng chúng tôi sẽ sử dụng phương pháp này vì mục đích hướng dẫn.

Bước 1

Đầu tiên chúng ta cần tạo một bảng. Như được hiển thị bên dưới, phần của chúng tôi khá đơn giản, chỉ chứa ba hàng có Trình quản lý, Khoảng thời gian và Truy vấn.

Bước 2

Tiếp theo, bạn cần các tập lệnh của Google để kích hoạt email bất cứ khi nào ai đó cập nhật trang tính với truy vấn của họ, từ đó đặt được một chỗ. Đây là một ví dụ. 

//@OnlyCurrentDoc hàm processEdit(e) { MailApp.sendEmail({ to: "[email protected]" ;, chủ đề: "Đặt chỗ mới -- khung thời gian của khách hàng", nội dung: "Một khách hàng có câu hỏi dành cho bạn." });

Sao chép

Để giúp bạn hiểu những gì đang diễn ra, bạn nên thảo luận về các chức năng chính. 

  • //@OnlyCurrentDoc – chú thích này báo hiệu rằng bạn muốn tập lệnh chỉ chạy trong Trang tính Google đã chỉ định. Việc xóa chú thích đã bật tập lệnh trên các tệp khác của bạn. 
  • function processEdit () – một trình kích hoạt (chúng ta sẽ thiết lập ở bước tiếp theo) chạy tập lệnh có chức năng này. Nói một cách đơn giản, hàm này sẽ thiết lập quy trình nhận email mỗi khi ai đó cập nhật trang tính.
  • (e) – chú thích này thể hiện đối tượng có dữ liệu về các chỉnh sửa. Nó có thuộc tính phạm vi để báo hiệu rằng một phạm vi hoặc một ô đã được chỉnh sửa. 
  • MailApp – một đối tượng mà hàm này sử dụng để chuyển tiếp email. 

Trước khi tiếp tục, bạn có thể kiểm tra trang tính và mã. Nếu bạn đang sử dụng trang tính mẫu, chỉ cần điền một trong các ô bên dưới cột Truy vấn và chạy tập lệnh. Email sẽ đến hộp thư đến của bạn ngay lập tức, nhưng xin lưu ý, tập lệnh vẫn chưa được tự động hóa.

Bước 3

Đã đến lúc đặt và ủy quyền trình kích hoạt để gửi email tự động. Trong Apps Script, nhấp vào biểu tượng đồng hồ báo thức trong menu bên. Sau đó, nhấp vào “…tạo trình kích hoạt mới”. 

Trong cửa sổ bật lên cấu hình trình kích hoạt, hãy chọn các tiêu chí sau.

  • quá trìnhSửa đổi
  • Cái đầu
  • Từ bảng tính
  • Đang chỉnh sửa

Lưu ý: Bạn giữ Cài đặt thông báo lỗi theo mặc định thì không sao nhưng bạn có thể thay đổi đó nếu cần thiết. Nó sẽ không ảnh hưởng đến hoạt động chung của trình kích hoạt hoặc tập lệnh. Điều này có thể áp dụng cho bất kỳ tập lệnh Google nào mà bạn muốn tự động hóa. 

Nhấp vào Lưu, ủy quyền trình kích hoạt trên tài khoản của bạn và bạn sẽ thấy nó trong  Danh sách trình kích hoạt . Ngoài ra, hãy đảm bảo nhấn nút Triển khai để kích hoạt trình kích hoạt. 

Bây giờ, bạn có thể quay lại trang tính, điền một ô khác vào cột Truy vấn và kiểm tra xem bạn có nhận được thông báo tự động hay không. 

Lưu ý phụ: Bạn có thể tùy chỉnh trang tính theo sở thích của mình nhưng điều này có nghĩa là bạn cũng cần phải tùy chỉnh tập lệnh.

Tags: #HOW-TO

Cách sửa lỗi cập nhật công cụ tiện ích Corsair

Cách sửa lỗi cập nhật công cụ tiện ích Corsair

Tìm hiểu các giải pháp khắc phục sự cố để giải quyết lỗi cập nhật công cụ tiện ích corsair và truy cập các tính năng mới của công cụ này.

[100% GIẢI QUYẾT] Làm thế nào để sửa chữa vấn đề máy tính xách tay Dell không bật?

[100% GIẢI QUYẾT] Làm thế nào để sửa chữa vấn đề máy tính xách tay Dell không bật?

Nếu máy tính xách tay Dell của bạn không bật, hãy làm theo các bản sửa lỗi khả thi được đưa ra trong bài viết & giải quyết vấn đề Máy tính xách tay Dell không bật một cách dễ dàng.

Bất hòa sẽ không mở? 9 giải pháp dễ dàng để khắc phục sự bất hòa không mở ra

Bất hòa sẽ không mở? 9 giải pháp dễ dàng để khắc phục sự bất hòa không mở ra

Nếu lỗi Discord không mở được và khởi chạy không thành công trong Hệ điều hành Windows, thì hãy làm theo các giải pháp dễ dàng và khắc phục sự cố Discord không mở đúng cách…

PS5 đóng băng và va chạm? 8 giải pháp chắc chắn để khắc phục nó vĩnh viễn

PS5 đóng băng và va chạm? 8 giải pháp chắc chắn để khắc phục nó vĩnh viễn

Khám phá một số thủ thuật hay nhất để sửa lỗi PS5 bị đóng băng. 1: Tắt Chế độ Nghỉ ngơi; 2: Khởi động lại Bảng điều khiển PS5 của bạn; 3: Cài đặt lại Phần mềm cơ sở PS5 và hơn thế nữa.

[Đã giải quyết] Cách sửa lỗi ứng dụng 0xc0000142 và 0xc0000005?

[Đã giải quyết] Cách sửa lỗi ứng dụng 0xc0000142 và 0xc0000005?

Bạn có gặp phải Lỗi ứng dụng 0xc0000142 và 0xc0000005, thì đừng lo lắng và hãy áp dụng các giải pháp được đưa ra và chạy chương trình cũng như trò chơi một cách dễ dàng.

10 cách để sửa lỗi NET :: ERR_CERT_AUTHORITY_INVALID vĩnh viễn

10 cách để sửa lỗi NET :: ERR_CERT_AUTHORITY_INVALID vĩnh viễn

Đọc hướng dẫn để làm theo các giải pháp từng bước dành cho người dùng và chủ sở hữu trang web để sửa lỗi NET :: ERR_CERT_AUTHORITY_INVALID trong Windows 10

Làm thế nào để khắc phục sự cố đèn đỏ của bộ điều khiển PS4? [Giải pháp đã thử và đã thử nghiệm]

Làm thế nào để khắc phục sự cố đèn đỏ của bộ điều khiển PS4? [Giải pháp đã thử và đã thử nghiệm]

Bạn đang tìm kiếm một giải pháp nhanh chóng để khắc phục sự cố đèn đỏ bộ điều khiển PS4? Sau đó, hãy thử các giải pháp được đưa ra và sửa lỗi đèn đỏ trên PS4 ...

[ĐÃ CỐ ĐỊNH] Lỗi NARUTO SHIPPUDEN Ultimate Ninja STORM 4- Sự cố, FPS thấp và các lỗi khác

[ĐÃ CỐ ĐỊNH] Lỗi NARUTO SHIPPUDEN Ultimate Ninja STORM 4- Sự cố, FPS thấp và các lỗi khác

Tìm hiểu cách sửa các lỗi khác nhau trong NARUTO SHIPPUDEN Ultimate Ninja STORM 4 như treo máy, màn hình đen, FPS thấp, v.v. và tận hưởng chơi trò chơi một cách dễ dàng.

Cách khôi phục các tệp đã xóa trên Chromebook (GIẢI THÍCH)

Cách khôi phục các tệp đã xóa trên Chromebook (GIẢI THÍCH)

Để khôi phục các tệp đã xóa trên Chromebook của bạn trong tương lai, chỉ cần bật Thùng rác trong Cờ. Đọc hướng dẫn của chúng tôi và tránh rắc rối cho chính bạn.

Lời nhắc Lịch Google không hiển thị? Đây là một bản sửa lỗi

Lời nhắc Lịch Google không hiển thị? Đây là một bản sửa lỗi

Nếu lời nhắc Lịch Google không hiển thị, hãy chọn hộp lời nhắc và tắt chế độ Ngoại tuyến trên ứng dụng khách web.