我想知道仅通过选择一个单元格作为活动单元格来复制范围(由单行和几列组成)的脚本是什么。
例如,如果我当前的活动单元格是A1或行1中的任何位置,并且我运行了脚本,它将复制A1:F1。如果我当前的活动单元格是A2或第2行中的任何位置,它将复制A2:F2。
到目前为止,我正在使用getActiveRange行,但是我发现选择A1:F1然后运行脚本会花费一些时间。如果有很多项目需要复制到不同的选项卡,我会发现这尤其正确。
我当前使用的脚本如下:
<?php
$query = new WP_Query( array(
'post_type' => 'hotcheck',
'topics__in' => array($cat->term_id),
) );
if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<div class="entry">
<h2 class="title"><?php the_title(); ?></h2>
<?php the_content(); ?>
</div>
<?php endwhile; wp_reset_postdata(); ?>
<!-- show pagination here -->
<?php else : ?>
这是题外话,但如果有人知道如何将超链接插入所选行的G列中(例如,如果当前活动单元格位于A1或第1行中的任何位置,则超级链接将粘贴到G1上,如果我当前的活动单元格位于A2或第2行的任何位置,超链接将粘贴在G2上),请告诉我。
答案 0 :(得分:2)
var source = SpreadsheetApp.getActiveSpreadsheet();
和var target = SpreadsheetApp.openById("SpreadsheetID");
是相同的电子表格,因为如果它们不同,则会在source_range.copyTo(target_range);
处发生错误。如果我的理解正确,那么这个答案如何?请认为这只是几个答案之一。
修改脚本后,请进行以下修改。
从:var source_range = source_sheet.getActiveRange();
var target_range = target_sheet.getRange("A4");
至:
var url = "https://www.google.com/"; // Added
var source_range = source_sheet.getActiveRange();
source_range = source_sheet.getRange(source_range.getRow(), 1, 1, 6); // Added
source_sheet.getRange("G" + source_range.getRow()).setFormula('=HYPERLINK("' + url + '","sample")') // Added
var target_range = target_sheet.getRange("A4");
url
的变量。getRow()
检索所选行,并用{{创建源工作表的列“ A”到“ F”的范围1}}。getRange()
检索选定的行,并用getRow()
创建源工作表的列“ G”的范围。然后,使用getRange()
放置超链接。如果我误解了您的问题,而这不是您想要的结果,我深表歉意。
在回复评论中,添加了the following request。
是否可以使用AS获取新工作表的工作表ID,然后将其粘贴到setFormula网址中?
对于上述其他要求,修改后的脚本如下。
请按如下所示修改脚本。
从setFormula()
至:
sheet.copyTo(source).setName('TargetSheet1');
和
从:var newSheet = sheet.copyTo(source).setName('TargetSheet1');
至:
var source_range = source_sheet.getActiveRange();
var target_range = target_sheet.getRange("A4");
var url = source.getUrl() + "#gid=" + newSheet.getSheetId(); // Added
var source_range = source_sheet.getActiveRange();
source_range = source_sheet.getRange(source_range.getRow(), 1, 1, 6); // Added
source_sheet.getRange("G" + source_range.getRow()).setFormula('=HYPERLINK("' + url + '","sample")') // Added
var target_range = target_sheet.getRange("A4");
代替var url = "#gid=" + newSheet.getSheetId();
。