簡體   English   中英

谷歌表格上的股市

[英]Stock market on google sheets

我正在嘗試在谷歌表格上制作 model 股票市場。 鏈接: https://docs.google.com/spreadsheets/d/1OmOWKfxYAdNRPcF4yfX4jJ0DX3UvUutaHJINHRU8vqo/edit?usp=sharing列 AD 是我為買入價格、賣出價格、買入數量、賣出數量輸入的隨機數。 列 FI 是按排序順序排列的這些變量。 單元格 E13 是更新后的價格。 我希望單元格 E14 成為更新的銷售數量。 請幫忙!!

以下是我使用的代碼:

function myFunction() {
  
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
  
  var Buyprice=sheet.getRange("F2").getValues(); 
  var Sellprice=sheet.getRange("H2").getValues();
  var Buyquantity=sheet.getRange("G2").getValues();
  var Sellquantity=sheet.getRange("I2").getValues();
  if(Buyprice>Sellprice){
    sheet.getRange("E13").setValues(Sellprice);
    var Buyquantity=Buyquantity- Math.min(Buyquantity,Sellquantity);
    var Sellquantity=Sellquantity- Math.min(Buyquantity,Sellquantity);
    sheet.getRange("E14").setValues(Sellquantity);}
  else{ }
}

運行此腳本后,我得到:參數(數字)與 SpreadsheetApp.Range.setValues 的方法簽名不匹配。

您需要將setValues()更改為setValue()

正如您在文檔中所讀到的:

獲取值()

返回此范圍的值的矩形網格

設置值(值)

設置一個矩形網格值

現在,如果您在代碼中實現日志,例如

...
 Logger.log(Sellquantity);
 var Sellquantity=Sellquantity- Math.min(Buyquantity,Sellquantity);
 Logger.log(Sellquantity);
...

output 將是:

[[6.0]]
6.0

換句話說,矩形網格將通過另一個值的子部分轉換為 integer 值。

現在, sheet.getRange("E14").setValues(Sellquantity); 需要一個二維數組而不是一個會導致錯誤的數字。

因此,請改用setValue()

設定值()

設置范圍的值。 該值可以是數字、字符串、boolean 或日期。

實際上,如果比較 [[]] 類型的數組元素,比較if(Buyprice>Sellprice)也可能無法按預期工作,因此最好也使用getValue()而不是getValues()

樣本:

function myFunction() {
  
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  var Buyprice=sheet.getRange("F2").getValue(); 
  var Sellprice=sheet.getRange("H2").getValue();
  var Buyquantity=sheet.getRange("G2").getValue();
  var Sellquantity=sheet.getRange("I2").getValue();
  if(Buyprice>Sellprice){
    sheet.getRange("E13").setValue(Sellprice);
    var newBuyquantity=Buyquantity- Math.min(Buyquantity,Sellquantity);
    var newSellquantity=Sellquantity- Math.min(Buyquantity,Sellquantity);
    sheet.getRange("E14").setValue(newSellquantity);
  }
  else{ } 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM