有冇巴打熟 Google Script

44 回覆
0 Like 10 Dislike
2019-04-20 13:06:02
本身有用開 spreadsheet,
我想做個 function 鍵做表格, 
範圍係由 A3:J3, 我知道選取範圍係打 Spreadsheet.getRange(A3:J3).active()

但呢個動作有時係會換行, 因為 A1:J3 已經用咗嘛
咁下次我會由 A5:J8, 總括就係每次個範圍都唔同,
但起始就定咗係 A 同 J 之間

條 code 應該點寫 
有冇巴打幫手教教
2019-04-20 13:22:34
你喺Sheet開多一格計住應該由邊一個row開始
2019-04-20 13:37:32
我都有試過
var current = getLastrow();

但我唔識點寫令佢去到 J 個格
2019-04-23 12:15:29
pish
2019-04-23 14:52:53
選取範圍用呢個會唔會好d
Spreadsheet.getRange(row, column, numRows, numColumns)
row係你第幾行開始 column係你第幾欄開始
numRows/numColumns就分別係幾多行/欄

因為你一定由A開始
所以column=1
去都J姐喺十個column
所以numColumns=10

至於行我唔係好明你點計
不過就應該可以用
var current = getLastrow();
再加加減減搵返row/numRows

詳情可以睇google出嘅documentation
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column-numrows-numcolumns
2019-04-23 16:03:33
google 個網我成日都睇, 但係唔係太睇得明
巴打你個段我都有睇過 麻煩哂先
2019-04-23 16:30:36
你個starting point係base on d 咩去決定先?如果由頭到尾既話你咪getRange(1,1, getLastRow(), 10) 去get曬A-J column
2019-04-23 16:54:26
無錯呀巴打難 我就係想 get 曬 A-J 格,
再做下步動作, 但係選取呢度已經唔識寫落去
巴打個句 getRange(1,1, getLastRow(), 10)
我寫過....

var Range = spreadsheetApp.getActiveSheet().getRange(1,1, getLastRow,10);


spreadsheet = spreadsheet.getRange(1,1, getLastRow,10);

都出咗 getLastRow is not defind
巴打可唔可以請教吓應該點寫呢句
2019-04-23 17:00:33
getLastRow係sheet嘅function嚟
所以
1. 後面要加開閂括號
2. 要邊張sheet嘅再.

簡單d講係
var Range = spreadsheetApp.getActiveSheet().getRange(1,1, spreadsheetApp.getActiveSheet().getLastRow(),10);
2019-04-23 17:02:31
不如你講下你究竟想做乜
咁樣唧牙膏好難幫到你
2019-04-23 17:08:01
正解我手機打貪方便先冇寫前面call speadsheet service個part

建議用個var裝返個getlastrow 個 Integer再call getrange for better readability
2019-04-23 17:11:52
其實我暫時只係想做一個動作掣, 個動作步驟如下
1. 選取 A 至 J (有時係選取一直行, 有時係兩行 或 三行)
2. 填滿晒格仔線

暫時就係咁樣, 但由於每次都唔同行數開始呢個動作, 面開始一定會係由 A 格開始, 至 J 個格

巴打想問吓你係邊度可以學到 Google script

我睇過 google 既教學, 但係都係模糊不清,
好多動作我都係用佢個 Marco record 完再自己抄寫返 code 落去用, 但好似以上我講個種不定行既起始我就真係諗唔到點寫
2019-04-23 17:13:40
學google script其實係要學javascript先
2019-04-23 17:14:52
不過你幾多行係點決定
2019-04-23 17:22:07
我諗住起好咗一行既稿, 會做一個掣係 for create 一行,
跟住二行又會做個掣, 如此類推, 因為我呢個功能其實係同我地做 packing list 有關, 所以每次個行數都會唔同, 主要係方便每次起個稿唔駛次次都要自己畫格仔
2019-04-23 17:29:53
原來係真架重諗住 google script 有自己既一套
可以專注學呢個範疇
2019-04-23 17:57:41
2019-04-23 18:14:12
2019-04-23 18:47:43
樓主識唔識用for loop?
2019-04-23 22:52:55
唔識
2019-04-23 23:22:34
我幫你寫咗出嚟。
function main() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var CurrentSheet = spreadsheet.getSheets()[0];
  
  var StartRow = 2
  var EndRow = 10
  var StartColumn = 1
  var EndColumn = 10  
  var range = CurrentSheet.getRange(StartRow, StartColumn, EndRow-StartRow+1, EndColumn-StartColumn+1);
  
  range.setBorder(true, true, true, true, true, true, '#000000', SpreadsheetApp.BorderStyle.SOLID);
  return
}

你Click紅圈位置就可以執行。
第一次執行的時候佢會問你拎permission。
你改StartRow, EndRow, StartColumn , EndColumn 就可以控制到邊行要set格線。
以上面為例,佢會將Row 2至Row 10同埋Column A至Column J的範圍set格線
2019-04-23 23:32:21
除咗改格線之外,你仲可以改cells入面的數值
例如下面依段code可以幫範圍入面每一格填數字
function test() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var CurrentSheet = spreadsheet.getSheets()[0];
  
  var StartRow = 3
  var EndRow = 8
  var StartColumn = 2
  var EndColumn = 9 
  
  var Count = 1;
  for (var i = StartRow;i<=EndRow;i++) {
    for (var j = StartColumn;j<=EndColumn;j++) {
      var cells = CurrentSheet.getRange(i, j);
      cells.setValue(Count);
      Count += 1;
    }
  }
  return
}


2019-04-24 06:35:20
巴打 你做乜要咁好人
多謝你幫手呀
我會好好保存同參透你呢段 codes

巴打 你係本身識 javascript ??
自學定係邊度有課程可以上架
2019-04-24 06:48:43
我都係自學,唔識就google咁
下面依個網幾好,你可以睇下

https://www.w3schools.com/js/default.asp
2019-04-24 07:55:03
萬分感謝
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞