6

Có cách nào tôi có thể thêm đối số vào một hàm sẽ được thêm vào Trình đơn Trung tâm Tập lệnh trên tài liệu Bảng tính Google không? Đây là phương pháp onOpen bình thường.Thêm đối số vào một hàm trong đối tượng mục nhập OpenOpen

function onOpen() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Summary", 
    functionName : "myOnOpen" 
    } 
]; 
    sheet.addMenu("Script Center Menu", entries); 
}; 

Tôi đã tự hỏi liệu có điều gì đó tương tự như sau không.

function onOpen() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Summary", 
    functionName : "myOnOpen", 
    arguments : [value: "Some value"] 
    } 
    ]; 
    sheet.addMenu("Script Center Menu", entries); 
}; 

Cảm ơn!

Trả lời

8

Tôi không nghĩ rằng có thể chính xác như bạn đã viết, nhưng bạn có thể làm điều đó theo cách sau:

function onOpen() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Summary", 
    functionName : "myParameterisedOpen", 
    } 
    ]; 
    sheet.addMenu("Script Center Menu", entries); 
}; 

function myParameterisedOpen() { 
    myOnOpen("Some value"); 
}; 
+0

Cảm ơn! Đó là một sửa chữa đơn giản mà tôi có thể sống với! – adifire

0

Vì vậy, tôi muốn tạo ra một loạt các chức năng tham số như thế này, nhưng tự động dựa trên nội dung trong trang tính của tôi. Sau một loạt các thử nghiệm và lỗi, và nhận ra có một trình gỡ lỗi trong Google Scripts tôi thấy công cụ này hoạt động:

function onOpen() { 
    var name = 'bob'; 
    var functionName = 'generate' + name + 'Schedule'; 
    this[functionName] = function() { return generateSchedule(name); } 
    generatebobSchedule(); 
} 

function generateSchedule(e) { 
    Browser.msgBox("Alert", e, Browser.Buttons.OK); 
} 
+0

Đừng bận tâm. Nếu bạn gọi generatebobSchedule sau này, điều này sẽ bị xóa, do đó không có generatebobSchedule. – Gary

Các vấn đề liên quan