- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是一个比我意识到的更复杂的问题,但我没有编码经验或培训,因此有一个神秘的标题(我什至不知道我在这里做的事情叫什么。关于“循环”的一些东西是关于我所知道的一切)。因此,如果foundCValues.push(colCdata[1][i]);
返回应该有多个结果的列中的第一个结果,修复方法是否简单,只需更改 colCdata 之后括号内的内容即可
?我尝试了几种变体,但没有一个能让我到达我需要的地方。我想返回整个列,或该列中不为 NULL
的每个值。
这是脚本的这个特定部分的其余部分。如果我需要发布整个脚本或进一步解释,请告诉我。
for(var i=0;i<colCdata.length;i++) {
if(valueToFind==colCdata[0][i]) {
foundCValues.push(colCdata[1][i]); // Only displays first match
// foundCValues.push(colCdata[i][1]); // Shows something seemingly random
// foundCValues.push(colCdata[1]); // Displays everything in a row
}
编辑:full script脚本是 HorizontalDV.gs
基本上,我想做的就是从使用辅助表填充数据验证过渡到仅使用列表,这样如果将行添加到表中,事情就不会混淆。
您可以使用之前的“帮助表”方法看到注释掉的“填充 C 列数据验证”。它在标题行中搜索匹配项(与先前选择的单元格 [activecell.value]),然后在数据验证中显示下面列的其余部分以供选择。
function horizontal_dv(e){
if(e.range.getSheet().getName() == 'Items'){
var activess = SpreadsheetApp.getActive().getSheetByName('Items');
var colBss = SpreadsheetApp.getActive().getSheetByName('Categories-Concat');
}
else if(e.range.getSheet().getName() == 'materialsData'){
var activess = SpreadsheetApp.getActive().getSheetByName('materialsData');
var colBss = SpreadsheetApp.getActive().getSheetByName('materialsCategories-Concat');
}
else if(e.range.getSheet().getName() == 'toolsData'){
var activess = SpreadsheetApp.getActive().getSheetByName('toolsData');
var colBss = SpreadsheetApp.getActive().getSheetByName('Data');
var colBdata = colBss.getRange(2,5,colBss.getLastRow(),1).getValues();
}
else if(e.range.getSheet().getName() == 'tasksData'){
var activess = SpreadsheetApp.getActive().getSheetByName('tasksData');
var colBss = SpreadsheetApp.getActive().getSheetByName('Categories-Concat');
var colBdata = colBss.getRange(1,2,1,colBss.getLastColumn()).getValues();
var colCss = SpreadsheetApp.getActive().getSheetByName('tasksGroups');
var colCdata = colCss.getRange(2,2,colCss.getLastRow(),colCss.getLastColumn()).getValues();
var colDss = SpreadsheetApp.getActive().getSheetByName('tasksSubGroups');
var colDdata = colDss.getRange(3,2,1,colDss.getLastColumn()).getValues();
}
else if(e.range.getSheet().getName() == 'tasksToolsRequired'){
var activess = SpreadsheetApp.getActive().getSheetByName('tasksToolsRequired');
var colBss = SpreadsheetApp.getActive().getSheetByName('Categories-Concat');
var colCss = SpreadsheetApp.getActive().getSheetByName('tasksGroups');
var colDss = SpreadsheetApp.getActive().getSheetByName('tasksSubGroups');
}
var colAValues = [];
var foundBValues = [];
var foundCValues = [];
var foundDValues = [];
var foundEValues = [];
var foundFValues = [];
var foundGValues = [];
var foundHValues = [];
var activeCell = activess.getActiveCell();
const valueToFind = activeCell.getValue();
// Populate column B data validations
// Horizontal search
// Search header row and return column below
if(activeCell.getColumn() == 1 && activeCell.getRow() > 1){
activeCell.offset(0, 1).clearDataValidations();
var colIndex = colBdata[0].indexOf(activeCell.getValue()) + 2;
if(colIndex != 0){
if(activeCell.getValue() != ""){
var colBvalidationRange = colBss.getRange(2, colIndex,colBss.getLastRow()-1);
var colBvalidationRule = SpreadsheetApp.newDataValidation().requireValueInRange(colBvalidationRange).build();
activeCell.offset(0, 1).setDataValidation(colBvalidationRule);
}
}
}
// // Populate column C data validations
// if(e.range.getSheet().getName() != 'Items'){
// if(activeCell.getColumn() == 2 && activeCell.getRow() > 1){
// activeCell.offset(0, 1).clearDataValidations();
// var colCIndex = colCdata[0].indexOf(activeCell.getValue()) + 2;
// if(colCIndex != 0){
// if(activeCell.getValue() != ""){
// var colCvalidationRange = colCss.getRange(3, colCIndex,colCss.getLastRow()-1);
// var colCvalidationRule = SpreadsheetApp.newDataValidation().requireValueInList(colCvalidationRange).build();
// activeCell.offset(0, 1).setDataValidation(colCvalidationRule);
// }
// }
// }
// Populate column C data validations
if(activeCell.getColumn() == 2 && activeCell.getRow() > 1){
activeCell.offset(0, 1).clearDataValidations();
Logger.log("valueToFind = " + valueToFind);
Logger.log("colCdata = " + colCdata);
Logger.log("colCdata.length = " + colCdata.length);
for(var i=0;i<colCdata.length;i++) {
if(valueToFind==colCdata[0][i]) {
foundCValues.push(colCdata[1][i]); // Only displays first match
// foundCValues.push(colCdata[i][1]); // Shows something seemingly random
// foundCValues.push(colCdata[1]); // Displays everything in a row
}
Logger.log("colCdata[0][i] = " + colCdata[0][i]);
Logger.log("colCdata[1][i] = " + colCdata[1][i]);
}
Logger.log("foundCValues = " + foundCValues);
for(var i=0;i<colCdata.length;i++) {
if(valueToFind==colCdata[i]) {
foundDValues.push(colCdata[i]);
}
}
if(activeCell.getValue() != ""){
var colCValidationRange = foundCValues;
var colCValidationRule = SpreadsheetApp.newDataValidation().requireValueInList(colCValidationRange).build();
activeCell.offset(0, 1).setDataValidation(colCValidationRule);
var colDValidationRange = foundDValues;
var colDValidationRule = SpreadsheetApp.newDataValidation().requireValueInList(colDValidationRange).build();
activeCell.offset(0, 2).setDataValidation(colDValidationRule);
}
}
// Populate column D data validations
if(activeCell.getColumn() == 3 && activeCell.getRow() > 1){
activeCell.offset(0, 1).clearDataValidations();
var colDIndex = colDdata[0].indexOf(activeCell.getValue()) + 2;
if(colDIndex != 0){
if(activeCell.getValue() != ""){
var colDvalidationRange = colDss.getRange(4, colDIndex,colDss.getLastRow()-1);
var colDvalidationRule = SpreadsheetApp.newDataValidation().requireValueInList(colDvalidationRange).build();
activeCell.offset(0, 1).setDataValidation(colDvalidationRule);
}
}
}
// Populate column E data validations
if(activeCell.getColumn() == 4 && activeCell.getRow() > 1){
activeCell.offset(0, 1).clearDataValidations();
var colEIndex = colEdata[0].indexOf(activeCell.getValue()) + 2;
if(colEIndex != 0){
if(activeCell.getValue() != ""){
var colEvalidationRange = colEss.getRange(5, colEIndex,colEss.getLastRow()-1);
var colEvalidationRule = SpreadsheetApp.newDataValidation().requireValueInList(colEvalidationRange).build();
activeCell.offset(0, 1).setDataValidation(colEvalidationRule);
}
}
}
// Populate column F data validations
if(activeCell.getColumn() == 5 && activeCell.getRow() > 1){
activeCell.offset(0, 1).clearDataValidations();
var colFIndex = colFdata[0].indexOf(activeCell.getValue()) + 2;
if(colFIndex != 0){
if(activeCell.getValue() != ""){
var colFvalidationRange = colFss.getRange(4, colFIndex,colFss.getLastRow()-1);
var colFvalidationRule = SpreadsheetApp.newDataValidation().requireValueInList(colFvalidationRange).build();
activeCell.offset(0, 1).setDataValidation(colFvalidationRule);
}
}
}
// Populate column G data validations
if(activeCell.getColumn() == 6 && activeCell.getRow() > 1){
activeCell.offset(0, 1).clearDataValidations();
var colGIndex = colGdata[0].indexOf(activeCell.getValue()) + 2;
if(colGIndex != 0){
if(activeCell.getValue() != ""){
var colGvalidationRange = colGss.getRange(4, colGIndex,colGss.getLastRow()-1);
var colGvalidationRule = SpreadsheetApp.newDataValidation().requireValueInList(colGvalidationRange).build();
activeCell.offset(0, 1).setDataValidation(colGvalidationRule);
}
}
}
}
最佳答案
如果您有多个行和列,您可能需要两个计数器来显示整个数组。根据阵列的宽度和高度,您可以设置限制。如果您的数据有 5 行高:
//untested
for (var q = 0; q < 5; q++) /* counts to height one time for every entire count to
length*/
{
for(var i=0;i<colCdata.length;i++) /*counts to length before rolling back to
height */
{
foundCValues.push(colCdata[q][i]);
}
}
关于javascript - 结果中仅出现数组中的一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57618390/
我的应用程序从一个有 5 个选项卡的选项卡栏 Controller 开始。一开始,第一个出现了它的名字,但其他四个没有名字,直到我点击它们。然后根据用户使用的语言显示名称。如何在选项卡栏出现之前设置选
我有嵌套数组 json 对象(第 1 层、第 2 层和第 3 层)。我的问题是数据表没有出现。任何相关的 CDN 均已导入。该表仅显示部分。我引用了很多网站,但都没有解决我的问题。 之前我使用标准表来
我正在尝试设置要显示的 Parse PFLoginViewController。这是我的一个 View Controller 的类。 import UIKit import Parse import
我遇到了这个问题,我绘制的对象没有出现在 GUI 中。我知道它正在被处理,因为数据被推送到日志文件。但是,图形没有出现。 这是我的一些代码: public static void main(Strin
我有一个树状图,其中包含出现这样的词...... TreeMap occurrence = new TreeMap (); 字符串 = 单词 整数 = 出现次数。 我如何获得最大出现次数 - 整数,
因此,我提示用户输入变量。如果变量小于 0 且大于 10。如果用户输入 10,我想要求用户再次输入数字。我问时间的时候输入4,它说你输入错误。但在第二次尝试时效果很好。例如:如果我输入 25,它会打印
我已经用 css overflow 属性做了一个例子。在这个例子中我遇到了一个溢出滚动的问题。滚动条出现了,但没有工作意味着每当将光标移动到滚动条时,在这个滚动条不活动的时间。我对此一无所知,所以请帮
我现在正在做一个元素。当您单击一个元素时,会出现以下信息,我想知道如何在您单击下一个元素而不重新单击同一元素时使其消失....例如,我的元素中有披萨,我想单击肉披萨看到浇头然后点击奶酪披萨看到浇头和肉
我有一个路由器模块,它将主题与正则表达式进行比较,并将出现的事件与一致的键掩码链接起来。 (它是一个简单的 url 路由过滤,如 symfony http://symfony.com/doc/curr
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: mysql_fetch_array() expects parameter 1 to be resource, bo
我在底部有一个带有工具栏的 View ,我正在使用 NavigationLink 导航到该 View 。但是当 View 出现时,工具栏显示得有点太低了。大约半秒钟后,它突然跳到位。它只会在应用程序启
我试图在我的应用程序上为背景音乐添加一个 AVAudioPlayer,我正在主屏幕上启动播放器,尝试在应用程序打开时开始播放但出现意外行为... 它播放并立即不断创建新玩家并播放这些玩家,因此同时播放
这是获取一个数字,获取其阶乘并将其加倍,但是由于基本情况,如果您输入 0,它会给出 2 作为答案,因此为了绕过它,我使用了 if 语句,但收到错误输入“if”时解析错误。如果你们能提供帮助,我真的很感
暂停期间抛出异常 android.os.DeadObjectException 在 android.os.BinderProxy.transactNative( native 方法) 在 androi
我已经为猜词游戏编写了一些代码。它从用户输入中读取字符并在单词中搜索该字符;根据字符是否在单词中,程序返回并控制一些变量。 代码如下: import java.util.Random; import
我是自动化领域的新手。这是我的简单 TestNG 登录代码,当我以 TestNG 身份运行该代码时,它会出现 java.lang.NullPointerException,双击它会突出显示我导航到 U
我是c#程序员,我习惯了c#的封装语法和其他东西。但是现在,由于某些原因,我应该用java写一些东西,我现在正在练习java一天!我要创建一个为我自己创建一个虚拟项目,以便让自己更熟悉 Java 的
我正在使用 Intellij,我的源类是 main.com.coding,我的资源文件是 main.com.testing。我将 spring.xml 文件放入资源文件中。 我的测试类位于 test.
我想要我的tests folder separate到我的应用程序代码。我的项目结构是这样的 myproject/ myproject/ myproject.py moduleon
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 6 年前。 因此,我尝试比较 2 个值,一个
我是一名优秀的程序员,十分优秀!