2015-07-22 2 views
0

Я пытаюсь создать таблицу для создания счетов. Я ранее делал это в Excel, и теперь я хочу использовать Google Таблицы, однако у меня возникают некоторые проблемы.Сценарии листов счетов

  • Я пытался создать функцию, которая активируется каждый раз, когда человек нажимает определенный диапазон
  • Я должен сохранить лист с определенным именем (например, значение ROW А1 Ряд + А2) и сохранить его в учетной записи моего диска Google
  • Я использовал importRange() для импорта данных в Google Form, однако, если я сделаю копию листа, я должен предоставить разрешение на отображение данных. (Как я могу это сделать, но без разрешения?)

ответ

0

Каждый из них является почти вопросом на его собственном. Тем не менее, вот ответ на вопросы:

1) Я пытался создать функцию, которая должна быть активирована каждый раз, когда человек щелкни определенный диапазон

Используйте функцию onEdit для выполнения любой функции вам желают выполнить. Однако для выполнения этой функции значения должны быть изменены. В GAS нет функции onClick() (как указано here). Тем не менее, вот простой пример для onEdit:

function onEdit() 
{ 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var cell = sheet.getActiveCell(); 
    var actRow = cell.getRow(); 
    var actCol = cell.getColumn(); 

//Assuming you want the range to be between rows 5-11 and column 2-9 
    if (actRow >= 11 && actRow<=5 && actCol >=2 && actCol<=9) 
    { 
    //Implement your function 
    } 
} 

2) Я должен сохранить лист с определенным именем (например, значение ROW A1 Row + A2) и сохранить его в моем Google Диске

Вот простой пример. Вам придется изменить его в соответствии с прецедентом, но это должно дать вам представление о том о том, как это сделать:

function moveRows(){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Sheet1'); 
    var numRows = sheet.getLastRow(); 
    var sRange = sheet.getRange(2, 1, numRows, 1); //Leaving out header rows 
    var data = sRange.getValues(); 

    var destFolder = DriveApp.getFolderById('*****'); 
    var newSpSheet = SpreadsheetApp.create("Billing Target"); 
    var newRows = "A"+(1+numRows); 
    var newRange = "A2:"+newRows; //Leaving out header rows 
    newSpSheet.getRange(newRange).setValues(data); 

    //If you need the file to be in a specific folder 
    DriveApp.getFileById(newSpSheet.getId()).makeCopy("Billing Target", destFolder); 

} 

3) я использовал диапазон импорта для импорта данных формы Google, однако если сделайте копию листа y, чтобы дать разрешение на отображение данных (как я могу это сделать, но без разрешения)

Насколько я знаю, вы не можете сделать это без разрешения.