5

Tôi có hơn 200 bảng tính mà khách hàng của chúng tôi lấp đầy. Tôi đã phát triển một kịch bản để quản lý các bảng tính cơ bản giống nhau về chức năng.Cách sử dụng một mã cho nhiều bảng tính có thể được cập nhật, cố gắng sử dụng Thư viện

Vấn đề là khi tôi sửa đổi tập lệnh, tôi cần phải thay đổi nó trong tất cả các trang tính này. Tôi đã thử sử dụng thư viện nhưng không thành công và tôi hy vọng sẽ nghe nếu có ai đó biết câu trả lời.

Phiên bản thư viện mà tôi đưa vào (với sự phát triển trên) trong mỗi bảng tính không hiển thị thay đổi xảy ra sau đó. Nó sẽ chỉ hiển thị kết quả tại thời điểm đưa vào, điều đó có nghĩa là để thực hiện công việc này, tôi phải truy cập từng bảng tính, xóa thư viện và cài đặt lại phiên bản mới nhất. Thư viện được cập nhật chỉ hoạt động từ tài khoản của chủ sở hữu của tôi. Tất nhiên, thư viện được chia sẻ bởi bất kỳ ai có liên kết. Chạy chức năng cập nhật của thư viện trong bất kỳ bảng tính nào xuất hiện lỗi: "LoạiError: Không thể tìm thấy hàm FunctionName trong đối tượng [đối tượng]. (Dòng 2, tệp" test ")"

Có cách nào hay không có tất cả các bảng tính cùng một mã mà tôi có thể thay đổi bất cứ khi nào tôi muốn không?

+1

thư viện của bạn cần "Bất cứ ai cũng có thể chỉnh sửa" cho phép chia sẻ nếu điều đó chưa được thiết lập, nhưng bạn có thể chia sẻ một số mẫu mã từ thư viện và tập lệnh nô lệ không được cập nhật? –

+1

Dường như không thể thực hiện được điều này: http://stackoverflow.com/questions/10500764/is-it-possible-to-have-one-script-for-multiple-spreadsheets – opowell

+1

Tôi đề nghị tất cả chúng ta nên chuyển sang vấn đề này: https://code.google.com/p/google-apps-script-issues/issues/detail?id=1356&q=type%3DEnhancement%20library&colspec=Stars%20Opened%20ID%20Type%20Status%20Summary%20Component%20Owner – opowell

Trả lời

1

Bạn nên bật "chế độ phát triển". Tài nguyên -> các thư viện được bao gồm cho mỗi trang tính bao gồm thư viện

+0

"chế độ phát triển" được bật. Nó không làm bất cứ điều gì thực sự. – user2242141

0

Tôi chưa có nhiều thành công khi sử dụng thư viện.

Một giải pháp tôi khuyên bạn nên sử dụng tập lệnh độc lập. Nếu các bảng tính có các tính năng giống nhau, bạn có thể chạy tập lệnh trên tất cả các bảng tính bằng cách sử dụng vòng lặp for.

Bạn có thể nhận được một loạt các tập tin bên trong thư mục sử dụng sử dụng getFiles()

// Logs the number of files in the 'kittens' folder 
var folder = DocsList.getFolder('kittens'); 
var files = folder.getFiles(); 
Logger.log(files.length); 
Các vấn đề liên quan