【问题标题】:I can't copy SpreadSheet data我无法复制电子表格数据
【发布时间】:2019-09-24 14:15:57
【问题描述】:

我正在尝试从特定列复制数据并将其放入正确的月份,但始终出现错误:

“数据中的行数与范围内的行数不匹配。数据有1但范围有5。”

代码:

    function reDatas() {

      var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Register');   
      var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Jan'); 

      sheet2.getRange("D6:D10").setValues([[
        sheet1.getRange('A4').getValue(),
        sheet1.getRange('B4').getValue(),
        sheet1.getRange('C4').getValue(),
        sheet1.getRange('D4').getValue(),
        sheet1.getRange('E4').getValue()]])
    }  

【问题讨论】:

    标签: google-apps-script google-sheets spreadsheet


    【解决方案1】:

    sheet2.getRange("D6:D10").setValues ser 这个范围包含你想像 A1:E10 这样跨越的单元格吗?

    【讨论】:

    • 我需要将数据 D6:D10 ("sheet1") 复制到 A4:E4 ("sheet2")。当我复制它时,它会在“sheet2”中添加行。
    【解决方案2】:

    您只需将表示 1 行 5 列的数组转换为 5 行 1 列的数组。

    function reDatas() {
    
      var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Register');   
      var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Jan'); 
    
      sheet2.getRange("D6:D10").setValues([[
        sheet1.getRange('A4').getValue()],[
        sheet1.getRange('B4').getValue()],[
        sheet1.getRange('C4').getValue()],[
        sheet1.getRange('D4').getValue()],[
        sheet1.getRange('E4').getValue()]])
    }  
    

    史蒂芬

    【讨论】:

    • 谢谢你,斯蒂芬妮。但我无法理解你的回答。
    • 你的数组是 [[1,2,3,4,5]] 所以它是一个 1 行 5 列的数组。范围 D6 到 D10 是 1 列的 5 行范围,因此它是 [[1],[2],[3],[4],[5]]。
    • 我可以做到,但是复制会创建没有值的空白单元格。
    • 在您的打印屏幕上 A4 B4 等...看起来是空的,因此复制空白数据似乎是正常的。
    猜你喜欢
    • 2019-10-19
    • 2019-08-22
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2012-03-19
    相关资源
    最近更新 更多