You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets脚本修改:金额提示框需显示对应X列值

Google Sheets closeTrade脚本修改方案

原需求:现有closeTrade脚本中,Trade ID输入框已展示V2:V区域内容,需修改脚本,让金额输入提示框根据选中的Trade ID,显示对应X2:X区域的数值。

修改后的完整脚本:

function closeTrade() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var tradeIds = sheet.getRange("V2:V").getValues().filter(String).join(', ');
  var tradeId = Browser.inputBox(`Enter the Trade ID to close: ${tradeIds}`, Browser.Buttons.OK_CANCEL);
  if (tradeId == "cancel") {
    return;
  }
  var range = sheet.getDataRange();
  var values = range.getValues();
  var openAmount = 0;
  var closeAmount = 0;
  var columnKValues = sheet.getRange("K:K").getValues();
  var columnXValues = sheet.getRange("X:X").getValues(); // 获取X列所有数值

  for (var i = 0; i < values.length; i++) {
    if (values[i][0] == tradeId) {
      if (values[i][2].toLowerCase() == "open") {
        openAmount += values[i][3];
      } else if (values[i][2].toLowerCase() == "close") {
        closeAmount += values[i][3];
      }
    }
  }

  for (var i = 0; i < values.length; i++) {
    if (values[i][0] == tradeId) {
      if (values[i][2].toLowerCase() == "open") {
        var openRow = sheet.getRange(i+1, 1, 1, values[0].length).getValues();
        var correspondingXValue = columnXValues[i][0]; // 获取当前行X列的数值
        // 修改金额输入提示,加入对应X列数值
        var amount = validateNumericInput(`Enter the amount (对应X列数值: ${correspondingXValue}):`);
        if (amount == null) {
          return;
        }
        var correspondingKValue = columnKValues[i][0];
        if (correspondingKValue < amount) {
          Browser.msgBox('平仓金额不能大于剩余金额。');
          return;
        }
        var exitPrice = validateNumericInput('Enter the Exit Price (numerical only):');
        if (exitPrice == null) {
          return;
        }
        
        var description = Browser.inputBox('Description:', Browser.Buttons.OK_CANCEL);
        if (description == "cancel") {
          return;
        }
        sheet.appendRow([tradeId, openRow[0][1], "close", amount, openRow[0][4], exitPrice, description]);
        return;
      } else if (values[i][2].toLowerCase() == "close") {
        Browser.msgBox('该交易已平仓。');
        return;
      }
    }
  }
  Browser.msgBox('未找到该交易ID。');
}

// 保留原有的validateNumericInput函数(假设它已存在)
function validateNumericInput(prompt) {
  var input = Browser.inputBox(prompt, Browser.Buttons.OK_CANCEL);
  if (input == "cancel") {
    return null;
  }
  var num = parseFloat(input);
  if (isNaN(num) || num <= 0) {
    Browser.msgBox('请输入有效的正数数值。');
    return validateNumericInput(prompt);
  }
  return num;
}

关键修改点

  • 新增columnXValues变量,获取X列(X:X)的所有数值,用于匹配对应Trade ID的行数据。
  • 在定位到目标Trade ID的未平仓行时,通过columnXValues[i][0]提取该行X列的对应数值。
  • 调整金额输入框的提示文本,将X列的参考数值嵌入其中,方便用户查看。
  • 优化了Trade ID列表的显示格式,用逗号分隔多个ID,提升可读性。

内容的提问来源于stack exchange,提问作者cpaone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:55:42