Hướng dẫn why cant i open the script editor in google sheets? - tại sao tôi không thể mở trình chỉnh sửa tập lệnh trong google sheet?

Các biên tập viên của Google Docs giúp đỡ

Đăng nhập

Google trợ giúp

  • Trung tâm trợ giúp
  • Cộng đồng
  • Các biên tập viên Google Docs
  • Chính sách bảo mật
  • Điều khoản dịch vụ
  • Gửi phản hồi

Gửi phản hồi về ...

Điều này trợ giúp nội dung & thông tin

Kinh nghiệm trung tâm trợ giúp chung

  • Trung tâm trợ giúp
  • Cộng đồng

Các biên tập viên Google Docs

Tôi đã tình cờ cố gắng mở tập lệnh Google ứng dụng trên bảng tính của tôi:

Hướng dẫn why cant i open the script editor in google sheets? - tại sao tôi không thể mở trình chỉnh sửa tập lệnh trong google sheet?

Khi tôi gặp lỗi sau:

Hướng dẫn why cant i open the script editor in google sheets? - tại sao tôi không thể mở trình chỉnh sửa tập lệnh trong google sheet?

Chắc chắn không hoàn thành công việc với Google Drive ngay hôm nay. 🤦‍♀

Một tìm kiếm nhanh cho lỗi này dẫn đến chủ đề hỗ trợ này, nơi mọi người báo cáo gặp phải vấn đề tương tự và nói rằng nó biến mất một cách kỳ diệu sau một thời gian mà không biết tại sao.

Các chủ đề cuối cùng đã bị khóa mà không có một giải pháp đáng tin cậy. Không tốt.

Giải pháp đáng tin cậy

Hóa ra nguyên nhân của vấn đề (trong trường hợp của tôi) là tôi đã đăng nhập nhiều tài khoản Google trong trình duyệt này. Tập lệnh Google Apps đã hoạt động tốt cho tài khoản Google mặc định, nhưng cố gắng mở nó trong bất kỳ tài khoản Google nào khác của tôi sẽ dẫn đến lỗi này.

Hướng dẫn why cant i open the script editor in google sheets? - tại sao tôi không thể mở trình chỉnh sửa tập lệnh trong google sheet?
Không phải email thực tế của tôi rõ ràng

Tôi đã không tìm thấy cách liên kết đúng bảng tính mới với tập lệnh Google ứng dụng trên tài khoản Google không phải là tài khoản mặc định, vì vậy giải pháp là đăng nhập vào tài khoản Google đó trong cửa sổ riêng (hoặc trình duyệt khác) để Đó là tài khoản mặc định và sử dụng tập lệnh Google Apps từ đó.log in to that Google account in a private window (or another browser) so that it’s the default account, and use Google Apps Script from there.

Sau khi bạn liên kết một dự án tập lệnh Google ứng dụng mới với bảng tính bạn chọn, bạn có thể quay lại trình duyệt chính của mình và mở các tập lệnh Google ứng dụng trực tiếp ở đó. Sử dụng trình chuyển đổi người dùng ở trên cùng bên phải, bạn có thể kết nối với tài khoản thích hợp và quản lý dự án của bạn từ đó. Lưu ý rằng UI Ứng dụng Google UI không xử lý nhiều người dùng và có thể trả lại cho bạn bất cứ lúc nào cho người dùng mặc định.

Tôi biết, không phải là một giải pháp tuyệt vời, nhưng bây giờ bạn biết!

Ngay cả nhà phát triển có kinh nghiệm nhất hiếm khi viết mã chính xác trong lần thử đầu tiên, làm cho việc khắc phục sự cố là một phần quan trọng của quá trình phát triển. Trong phần này, chúng tôi sẽ bao gồm một số kỹ thuật có thể giúp bạn tìm thấy, hiểu và gỡ lỗi các lỗi trong tập lệnh của bạn.

Thông báo lỗi

Khi tập lệnh của bạn gặp lỗi, một thông báo lỗi được hiển thị. Thông báo được kèm theo một số dòng được sử dụng để khắc phục sự cố. Có hai loại lỗi cơ bản được hiển thị theo cách này: lỗi cú pháp và lỗi thời gian chạy.

Lỗi cú pháp

Lỗi cú pháp được gây ra bởi mã viết không tuân theo ngữ pháp JavaScript và các lỗi được phát hiện ngay khi bạn cố gắng lưu tập lệnh. Ví dụ: đoạn mã sau chứa lỗi cú pháp:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ";
  MailApp.sendEmail('',
                    'Data in row ' + rowNumber,
                    rowData);
}

Vấn đề cú pháp ở đây là một ký tự ) bị thiếu ở cuối dòng thứ tư. Khi bạn cố gắng lưu tập lệnh, bạn sẽ gặp lỗi sau:

Thiếu) sau danh sách đối số. (Dòng 4)

Những loại lỗi này thường đơn giản để khắc phục sự cố, vì chúng được tìm thấy ngay lập tức và thường có những nguyên nhân đơn giản. Bạn không thể lưu một tệp có chứa lỗi cú pháp, có nghĩa là chỉ mã hợp lệ được lưu vào dự án của bạn.

Lỗi thời gian chạy

Các lỗi này được gây ra bằng cách sử dụng hàm hoặc lớp không chính xác và chỉ có thể được phát hiện sau khi tập lệnh đã được chạy. Ví dụ: mã sau gây ra lỗi thời gian chạy:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ");
  MailApp.sendEmail('john',
                    'Data in row ' + rowNumber,
                    rowData);
}

Mã được định dạng chính xác, nhưng chúng tôi đang chuyển giá trị "John" cho địa chỉ email khi gọi MailApp.sendEmail. Vì đây không phải là địa chỉ email hợp lệ, lỗi sau được ném khi chạy tập lệnh:

Email không hợp lệ: John (dòng 5)

Điều làm cho các lỗi này trở nên khó khăn hơn khi khắc phục sự cố là thường thì dữ liệu bạn đang chuyển vào một hàm không được viết trong mã, mà thay vào đó được lấy từ bảng tính, biểu mẫu hoặc nguồn dữ liệu bên ngoài khác. Sử dụng các kỹ thuật gỡ lỗi dưới đây có thể giúp bạn xác định nguyên nhân của các lỗi này.

Lỗi thông thường

Dưới đây là danh sách các lỗi phổ biến và nguyên nhân của chúng.

Dịch vụ được gọi quá nhiều lần:

Lỗi này cho thấy rằng bạn đã vượt quá hạn ngạch hàng ngày của mình cho một hành động nhất định. Ví dụ: bạn có thể gặp phải lỗi này nếu bạn gửi quá nhiều email trong một ngày. Hạn ngạch được đặt ở các cấp độ khác nhau cho các tài khoản tiêu dùng, tên miền và hàng đầu và có thể thay đổi bất cứ lúc nào mà không cần thông báo trước bởi Google. Bạn có thể xem các giới hạn hạn ngạch cho các hành động khác nhau trong tài liệu hạn ngạch tập lệnh ứng dụng.

Máy chủ không có sẵn. hoặc xảy ra lỗi máy chủ, vui lòng thử lại. or Server error occurred, please try again.

Có một vài nguyên nhân có thể cho các lỗi này:

  • Một máy chủ hoặc hệ thống Google tạm thời không có sẵn. Đợi một vài khoảnh khắc và thử chạy lại kịch bản.
  • Có một lỗi trong tập lệnh của bạn không có thông báo lỗi tương ứng. Hãy thử gỡ lỗi tập lệnh của bạn và xem bạn có thể cô lập vấn đề không.
  • Có một lỗi trong tập lệnh Google Apps gây ra lỗi này. Để biết hướng dẫn tìm kiếm và nộp báo cáo lỗi, hãy xem các lỗi. Trước khi nộp một lỗi mới, hãy tìm kiếm để xem những người khác đã báo cáo nó.

Lỗi này chỉ ra rằng tập lệnh đang thiếu ủy quyền cần thiết để chạy. Khi một tập lệnh được chạy trong trình chỉnh sửa tập lệnh hoặc từ một mục menu tùy chỉnh, hộp thoại ủy quyền được trình bày cho người dùng. Tuy nhiên, khi một tập lệnh được chạy từ một kích hoạt, được nhúng với trang Google Site hoặc chạy dưới dạng dịch vụ, hộp thoại không thể được trình bày và lỗi này được hiển thị.

Để cho phép tập lệnh, hãy mở trình chỉnh sửa tập lệnh và chạy bất kỳ chức năng nào. Lời nhắc ủy quyền xuất hiện để bạn có thể ủy quyền cho dự án tập lệnh. Nếu tập lệnh chứa các dịch vụ trái phép mới, bạn phải ủy quyền lại tập lệnh.

Lỗi này thường được gây ra bởi các kích hoạt đang bắn trước khi người dùng ủy quyền cho họ. Nếu bạn không có quyền truy cập vào dự án tập lệnh (ví dụ như lỗi đối với tiện ích bổ sung bạn sử dụng), bạn thường có thể ủy quyền cho tập lệnh bằng cách sử dụng lại bổ trợ. Nếu một kích hoạt tiếp tục bắn và gây ra lỗi này, bạn có thể xóa các kích hoạt của mình bằng cách thực hiện các như sau:

  1. Ở bên trái của dự án tập lệnh ứng dụng, nhấp vào kích hoạt.Triggers .
  2. Ở bên phải của bộ kích hoạt bạn muốn xóa, nhấp vào thêm> Xóa kích hoạt.> Delete trigger.

Bạn cũng có thể loại bỏ các kích hoạt bổ trợ có vấn đề bằng cách gỡ cài đặt bổ trợ.

Truy cập bị từ chối: DriveApp hoặc chính sách miền đã vô hiệu hóa các ứng dụng ổ đĩa của bên thứ ba or The domain policy has disabled third-party Drive apps

Quản trị viên của miền Workspace có khả năng vô hiệu hóa SDK ổ đĩa cho tên miền của họ, điều này ngăn người dùng của họ cài đặt và sử dụng ứng dụng Google Drive. Cài đặt này cũng ngăn người dùng có thể sử dụng các tiện ích bổ sung tập lệnh ứng dụng sử dụng dịch vụ ổ đĩa hoặc dịch vụ ổ đĩa nâng cao (ngay cả khi tập lệnh được ủy quyền trước khi quản trị vô hiệu hóa ổ đĩa SDK).

Tuy nhiên, nếu một ứng dụng bổ trợ hoặc ứng dụng web sử dụng dịch vụ ổ đĩa được xuất bản để cài đặt toàn tên miền và được quản trị viên cài đặt cho một số hoặc tất cả người dùng trong miền, tập lệnh chức năng cho những người dùng đó ngay cả khi SDK ổ đĩa bị tắt lĩnh vực.

Tập lệnh không có quyền để nhận được danh tính của người dùng đang hoạt động.

Cho biết rằng danh tính và email của người dùng đang hoạt động không có sẵn cho tập lệnh. Cảnh báo này là kết quả từ một cuộc gọi đến Session.getActiveUser(). Nó cũng có thể xuất phát từ một cuộc gọi đến Session.getEffectiveUser() nếu tập lệnh đang chạy ở chế độ ủy quyền khác với AuthMode.FULL. Nếu cảnh báo này được báo hiệu, các cuộc gọi tiếp theo đến User.getEmail() chỉ trả về "".

Có một số cách để khắc phục sự cố cảnh báo này, tùy thuộc vào chế độ ủy quyền mà tập lệnh đang chạy theo. Chế độ ủy quyền được hiển thị trong các hàm được kích hoạt là thuộc tính authMode của tham số sự kiện e.

  • Trong AuthMode.FULL, hãy xem xét sử dụng Session.getEffectiveUser() thay thế.
  • Trong
    function emailDataRow(rowNumber) {
      var sheet = SpreadsheetApp.getActiveSheet();
      var data = sheet.getDataRange().getValues();
      var rowData = data[rowNumber-1].join(" ");
      MailApp.sendEmail('john',
                        'Data in row ' + rowNumber,
                        rowData);
    }
    
    2, đảm bảo rằng chủ sở hữu đã ủy quyền cho kịch bản.
  • Trong các chế độ ủy quyền khác, tránh gọi một trong hai phương thức.
  • Nếu bạn là khách hàng của Google Workspace mới trải nghiệm cảnh báo này từ một bộ kích hoạt có thể cài đặt, hãy đảm bảo rằng kích hoạt đang chạy như một người dùng trong tổ chức của bạn.

Thư viện bị thiếu

Nếu bạn thêm một thư viện phổ biến vào tập lệnh của mình, bạn có thể nhận được thông báo lỗi cho biết nó bị thiếu, mặc dù thư viện được liệt kê là phụ thuộc vào tập lệnh của bạn. Lý do có thể là quá nhiều người đang truy cập thư viện cùng một lúc. Để tránh lỗi này, hãy thử một trong các giải pháp sau:

  • Sao chép và dán mã của thư viện vào tập lệnh của bạn và xóa phụ thuộc thư viện.
  • Sao chép tập lệnh thư viện và triển khai nó dưới dạng thư viện từ tài khoản của bạn. Hãy chắc chắn cập nhật sự phụ thuộc trong tập lệnh gốc của bạn lên thư viện mới thay vì công khai.

Gỡ lỗi

Không phải tất cả các lỗi đều gây ra thông báo lỗi được hiển thị. Có thể có một lỗi tinh tế hơn trong đó mã chính xác về mặt kỹ thuật và có thể thực thi, nhưng kết quả không phải là những gì bạn mong đợi. Dưới đây là một số chiến lược để xử lý các tình huống như vậy và điều tra thêm một kịch bản không chạy theo cách bạn mong đợi.

Đăng nhập

Trong khi gỡ lỗi, thường rất hữu ích khi ghi lại thông tin khi một dự án tập lệnh thực hiện. Tập lệnh Google Apps có hai phương thức để ghi nhật ký: Dịch vụ ghi nhật ký đám mây và các dịch vụ bảng điều khiển và bảng điều khiển cơ bản hơn được tích hợp vào trình chỉnh sửa tập lệnh ứng dụng.

Xem Hướng dẫn ghi nhật ký để biết thêm chi tiết.

Báo cáo lỗi

Các ngoại lệ xảy ra do lỗi thời gian chạy được tự động ghi lại bằng dịch vụ báo cáo lỗi Google Cloud. Dịch vụ này cho phép bạn tìm kiếm và lọc thông báo ngoại lệ mà dự án tập lệnh của bạn tạo.

Để truy cập báo cáo lỗi, xem Xem nhật ký đám mây và báo cáo lỗi trong bảng điều khiển nền tảng đám mây của Google.

Thực thi

Mỗi khi bạn chạy tập lệnh, tập lệnh ứng dụng sẽ ghi lại bản ghi thực thi, bao gồm cả nhật ký đám mây. Những hồ sơ này có thể giúp bạn hiểu hành động nào mà tập lệnh của bạn đã thực hiện.

Để xem các lần thực thi tập lệnh của bạn trong dự án tập lệnh ứng dụng, ở bên trái, nhấp vào thực thi.Executions .

Kiểm tra trạng thái dịch vụ tập lệnh ứng dụng

Mặc dù hiếm hoi, đôi khi các dịch vụ không gian làm việc của Google (như Gmail hoặc ổ đĩa) gặp phải các vấn đề tạm thời có thể dẫn đến việc ngừng hoạt động. Khi điều này xảy ra, các dự án tập lệnh ứng dụng tương tác với các dịch vụ này có thể không hoạt động như mong đợi.

Bạn có thể kiểm tra xem có ngừng hoạt động dịch vụ không gian làm việc của Google bằng cách xem bảng điều khiển trạng thái không gian làm việc của Google không. Nếu việc ngừng hoạt động hiện đang được trải nghiệm, bạn sẽ chờ nó được giải quyết hoặc tìm kiếm sự trợ giúp bổ sung trong Trung tâm trợ giúp không gian làm việc của Google hoặc tài liệu về các vấn đề đã biết của Google Workspace.

Sử dụng trình gỡ lỗi và điểm dừng

Để xác định các vấn đề trong tập lệnh của bạn, bạn có thể chạy nó ở chế độ gỡ lỗi. Khi chạy ở chế độ gỡ lỗi, một tập lệnh dừng lại khi nó chạm vào điểm dừng, đó là một dòng bạn đã nhấn mạnh trong tập lệnh của bạn mà bạn nghĩ có thể có vấn đề. Khi một tập lệnh dừng lại, nó hiển thị giá trị của từng biến tại thời điểm đó, cho phép bạn kiểm tra các hoạt động bên trong của tập lệnh mà không phải thêm nhiều câu lệnh ghi nhật ký.

Thêm một điểm dừng

Để thêm điểm dừng, di chuột qua số dòng của dòng bạn muốn thêm điểm dừng vào. Ở bên trái của số dòng, nhấp vào vòng tròn. Hình ảnh dưới đây hiển thị một ví dụ về điểm dừng được thêm vào tập lệnh:

Hướng dẫn why cant i open the script editor in google sheets? - tại sao tôi không thể mở trình chỉnh sửa tập lệnh trong google sheet?

Chạy tập lệnh ở chế độ gỡ lỗi

Để chạy tập lệnh trong chế độ gỡ lỗi, ở đầu trình soạn thảo nhấp vào gỡ lỗi.Debug.

Trước khi tập lệnh chạy dòng với điểm dừng, nó dừng lại và hiển thị một bảng thông tin gỡ lỗi. Bạn có thể sử dụng bảng này để kiểm tra dữ liệu như các giá trị của các tham số và thông tin được lưu trữ trong các đối tượng.

Để kiểm soát cách chạy tập lệnh, ở đầu bảng trình gỡ lỗi, hãy sử dụng các nút "Bước trong", "Bước qua" và "Bước ra". Những điều này cho phép bạn chạy tập lệnh một dòng tại một thời điểm và kiểm tra cách các giá trị thay đổi theo thời gian.

Các vấn đề với nhiều tài khoản Google

Nếu bạn đã đăng nhập vào nhiều tài khoản Google cùng một lúc, bạn có thể gặp khó khăn khi truy cập các dự án tập lệnh ứng dụng, tiện ích bổ sung và ứng dụng web của mình. Multi-login hoặc được đăng nhập vào nhiều tài khoản Google cùng một lúc, không được hỗ trợ cho tập lệnh ứng dụng, tiện ích bổ sung hoặc ứng dụng web.

Để khắc phục sự cố từ đa login, hãy thử một trong các giải pháp sau:

  • Đăng xuất tất cả các tài khoản Google của bạn và chỉ đăng nhập vào tệp có dự án tập lệnh ứng dụng, tiện ích bổ sung hoặc ứng dụng web bạn cần truy cập.
  • Mở cửa sổ ẩn danh trong Google Chrome hoặc cửa sổ duyệt riêng tương đương và đăng nhập vào tài khoản Google có dự án tập lệnh ứng dụng, tiện ích bổ sung hoặc ứng dụng web bạn cần truy cập.

Tìm sự giúp đỡ

Gỡ lỗi một vấn đề bằng cách sử dụng các công cụ và kỹ thuật được liệt kê ở trên có thể giải quyết nhiều vấn đề khác nhau, nhưng có thể có vấn đề bạn gặp phải đòi hỏi một số trợ giúp thêm để giải quyết. Xem trang hỗ trợ của chúng tôi để biết thông tin về nơi đặt câu hỏi và lỗi.

Tại sao trình soạn thảo tập lệnh không hiển thị trong Google Sheets?

Nếu các công cụ-> Trình chỉnh sửa tập lệnh và các tùy chọn menu bổ trợ bị thiếu khi bạn mở tệp, thì có lẽ nó thực sự không phải là tệp Google Sheets.Đảm bảo điều hướng đến Tệp -> Lưu dưới dạng Google Sheets.Sau đó, tùy chọn Trình chỉnh sửa tập lệnh trong menu Công cụ và menu bổ trợ sẽ có sẵn.it probably isn't actually a Google Sheets file. Make sure to navigate to File --> Save As Google Sheets. Then the Script Editor option in the Tools menu and the Add-ons menu will be available.

Trình chỉnh sửa kịch bản đã đi đâu trong Google Sheets?

Nhấp vào phần mở rộng> Tập lệnh ứng dụng để mở trình chỉnh sửa tập lệnh, sau đó sao chép văn bản tập lệnh từ bảng tính gốc và dán nó vào trình chỉnh sửa tập lệnh của bảng tính khác.Extensions > Apps Script to open the script editor, then copy the script text from the original spreadsheet and paste it into the script editor of another spreadsheet.

Tại sao một biên tập viên không thể chỉnh sửa một tờ Google?

Nếu bạn không thể chỉnh sửa tệp, một vài điều có thể sai: Chủ sở hữu tệp không cho phép bạn xem tệp.Bạn đã đăng nhập vào một tài khoản Google khác.Một người khác có quyền truy cập chỉnh sửa đã xóa quyền của bạn để chỉnh sửa.The file owner didn't give you permission to view the file. You're signed in to a different Google Account. Someone else with edit access removed your permission to edit.