这个问题已多次提出,但没有结果-在这种情况下,间接不起作用。在Excel中,计算函数可能会有所帮助,但只使用VBA,也不太有用。
范围A3:A6包含条件,范围B3:B6 -对应公式的文本,E1包含条件选择器(本例中的数据验证列表)。D9:D12:=间接(“B”&MATCH($E$1,A:A,1)中的公式)
问题是-如何将文本从B3:B6转换为D9:D12,以使它们成为正确的公式?
发布于 2022-06-04 11:33:24
只有通过脚本才能将文本字符串转换为有效的公式:
function onEdit() {
var sheet = SpreadsheetApp.getActive().getSheetByName("Contants"); // sheet name
var src = sheet.getRange("C2"); // The cell which holds the formula
var str = src.getValue();
var cell = sheet.getRange("C10"); // The cell where I want the results to be
cell.setFormula(str);
}
还请记住,您的字符串需要与前面的=符号的公式完全相同。请参阅:https://stackoverflow.com/a/60981768/5632629
发布于 2022-06-05 07:34:13
Player0 -由衷的感谢-它真的很简单,轻和工作的解决方案。它的工作性能比在Excel中使用它的better ()函数做的要好得多。我的特定示例的最后代码如下:
function onEdit() {
var sheet = SpreadsheetApp.getActive().getSheetByName("Sample"); //
sheet name
var rowNoCell = sheet.getRange("F1");
var rowNo = rowNoCell.getValue();
var src = sheet.getRange("B"+rowNo); // The cell which holds the formula
var str = src.getValue();
var cell = sheet.getRange("D9:D12"); // The cell where I want the r
esults to be
cell.setFormula(str);
}
根据条件,在F1中选择,细胞在B3:B6范围内,并将公式张贴到D9:D12范围内。
F1 contains =MATCH($E$1,A:A,1)将F1中的条件与A3:A6中的值链接起来
B3:B6范围中唯一的公式必须是一个字符串,前面没有"=“。
再次感谢-问题解决了!
https://stackoverflow.com/questions/72499231
复制相似问题