ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: jinxuanmr

请大神对该google脚本进行修改,感激不尽

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-12-17 08:03 来自手机 | 显示全部楼层
jinxuanmr 发表于 2020-12-15 17:44
我是想根据 A B C三列,复制到ABC三列,我复制的数据也不会超过三列,您看怎么修改呢

看了几天文档,没发现有直接获取a列最后一行的函数。
你方便发一下原始数据吗?当D列有数据时,却要根据A列最后一行,而不是整个target 表的最后一行?

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-17 12:55 | 显示全部楼层
zpy2 发表于 2020-12-17 08:03
看了几天文档,没发现有直接获取a列最后一行的函数。
你方便发一下原始数据吗?当D列有数据时,却要根据 ...

感谢您的回复,不一定非要修改我给的这个代码。
只要能达到  将A2:C2 复制到另外一个工作在指定列黏贴的功能,换个代码也好的


image_2020-12-17_12-50-38.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-17 14:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zpy2 发表于 2020-12-17 08:03
看了几天文档,没发现有直接获取a列最后一行的函数。
你方便发一下原始数据吗?当D列有数据时,却要根据 ...
  1. function copySheet(){

  2. var sourceTable = SpreadsheetApp.openById("10zAVMesJMoa8RJTSQlb_ya1SC1rz41FmDeznUnZbieg"); // Source file
  3. var srcSheet = sourceTable.getSheetByName("2");

  4. var targetTable = SpreadsheetApp.openById("1ZkQd-eez6pH9eF2TTBjF8fdnh_MDX5DjXYBn12r_TxY"); // Target file
  5. var tarSheet = targetTable.getSheetByName("2");

  6.   var f=false;
  7.   var L=tarSheet.getRange(1,12,tarSheet.getLastRow()+1,1).getValues().map(function(r,i){if(!f && r[0].toString().length==0){f=true;return i+1;}else{return '';}}).filter(function(e){return e;});
  8.   tarSheet.getRange(L,12).setValue(srcSheet.getRange(2, 1, 1, 3).getValue());
  9. }
复制代码
这行代码我改好了,可以将工作表中的 J3 复制到另一个工作表中的L行,并复制一次就进行叠加,不会受其它行影响。
请问怎么改成复制A2:C2到 另一个表的A2:C2呢

TA的精华主题

TA的得分主题

发表于 2020-12-18 10:18 来自手机 | 显示全部楼层
jinxuanmr 发表于 2020-12-17 14:21
这行代码我改好了,可以将工作表中的 J3 复制到另一个工作表中的L行,并复制一次就进行叠加,不会受其它 ...

// ------------ GENERAL GOOGLE SHEET DOC TO TRACKING GOOGLE SHEET DOC ------------

function GeneralToTracking(tName) {
  /*
  This code defines the Source Google Sheet Doc and the Target Google Sheet Doc. These are two
  different google sheet docs. They are NOT 2 sheets in the same google sheet doc.
  */

  var ss = SpreadsheetApp.getActiveSpreadsheet();
/*
  var target = SpreadsheetApp.openById('1yxfpC7Yag9GAkoe5BUjjg12cUhGmGr5ryeGl87JmZqU');
*/
/*这里 同一个 工作簿 */
var target=SpreadsheetApp.getActiveSpreadsheet();
  /*
  This code is to pick specific sheets within the Source & Target Sheet.
     Source Google Sheet ="New Stuff"
     Target Google Sheet ="Archive"
  */

  var source_sheet = ss.getActiveSheet(); // ++++ TO DO: Need to make this work on whatever sheet the user is on currently, instead of being hardcoded. ++++
  var target_sheet = target.getSheetByName(tName); // ++++ TO DO: Need to present the user with a list of tabs in the Target doc. Prompt w/ Radio Buttons. ++++

  /*
  This code determines the from-range and the to-range to copy & says where to put it in the Target.
  */

  var source_range = source_sheet.getActiveRange();
  var sValues = source_range.getValues();
  console.log(sValues);
// var last_row = target_sheet.getLastRow();
  var f=false;
//目标 第1行,2列
/*
这里是活动区域,也可以用指定区域
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer)
getRange(row, column, numRows, numColumns)
*/
  var last_row =target_sheet.getRange(1,2,target_sheet.getLastRow()+1,1).getValues().map(function(r,i){if(!f && r[0].toString().length==0){f=true;return i+1;}else{return '';}}).filter(function(e){return e;});
console.log(last_row);
  //  source_range.copyTo(target_range);

  //if (last_row > 0) target_sheet.insertRowAfter(last_row);
  var target_range = target_sheet.getRange(last_row, 2, sValues.length, sValues[0].length);
  target_range.setValues(sValues);
console.log(target_range.getValues());
  // double check and enable these when above test is pass
  // var copiedsheet = source_sheet.copyTo(target);
  // copiedsheet.getRange(source_range.getA1Notation()).copyTo(target_range);
  // target.deleteSheet(copiedsheet);
}

function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
    .createMenu('Custom Menu')
/*
    .addItem('Enter Target Name', 'enterTargetName')
*/
  .addItem('复制粘贴到dest表', 'zpy2')
    .addToUi();
}
function zpy2(){
var text="dest";//目标表的名称
GeneralToTracking(text);
}
function enterTargetName() {
  var ui = SpreadsheetApp.getUi(); // Same variations.

  var result = ui.prompt(
    'Enter Target Sheet Name',
    'Please enter target sheet name:',
    ui.ButtonSet.OK_CANCEL
  );

  // Process the user's response.
  var button = result.getSelectedButton();
  var text = result.getResponseText();
  if (button == ui.Button.OK) {
    // User clicked"OK".
    GeneralToTracking(text);
  }
}

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-21 22:56 | 显示全部楼层
zpy2 发表于 2020-12-18 10:18
// ------------ GENERAL GOOGLE SHEET DOC TO TRACKING GOOGLE SHEET DOC ------------

function Gen ...

感谢您的回复!  
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 03:26 , Processed in 0.052026 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表