0

次のような形式を変更するスクリプトを作成しまし12.4/12/12.0312:40:00/12:00:00/12:03:00 。コードは次のとおりです。

function myFunction() {
  var sheet=SpreadsheetApp.getActiveSheet();
  var rows= sheet.getDataRange();
  var numRows=rows.getNumRows();
  var values=rows.getValues()
  var column = [];
  var p = 0;
  var k = "H";

   for (var i=0;i<numRows;i++) {

    // var cell = 
    //Split the string a the .
  var  string = values[i][7].split(".");

     string[0] = string[0].toString();
     p = i+1;
     k = "H"+p;
     var cell = sheet.getRange(k);
     if(string[1]){
       string[1] = string[1].toString(); 
    // if the second part is like 4 in 12.4 you set it to 40

     if(string[1]!=0) {
    if (string[1].length == 1 )
    {   string[1] += "0";}
     }
    // Set the row value to the format you like, here : 12:40:00/12:40
      var changed_format = string[0] + ":" + string[1] + ":00";
     values[i][7]=changed_format;
     p = i+1;
     k = "H"+p;
     cell.setValue(changed_format);     
}
     else {
       var changed_format = values[i][7]+":00:00";
     cell.setValue(changed_format);

     }    
   }

上記のコードでは、列について言及しました...つまり、各列に対してこのスクリプトを実行する必要があります...毎回...例: values[i][7] k="H"+pfor 8th column. それで、誰でも方法を教えてもらえますか...一度に...そして可能であれば私のコードを減らしてください..(最適化)..そしてまた..このようにすることが可能ですか:私が選択した場合スプレッドシートの列と、スクリプトによって行われた変更がその選択された領域に適用されます...つまり、スクリプトで選択された領域を入力として取得したいのですが...それは可能ですか..どうすれば.?

4

1 に答える 1