在我的公司中,我们正在使用一个Excel文件来存储我们的表达式和变量,以便我们可以在一个中心位置更新它们,并且我们使用多个选项卡(在qlikview表中)来保持它们的组织。我不喜欢代码的重复,因此我创建了一个子过程,然后将其称为更改的变量。语法看起来正确,但它不断给我一个脚本错误,上面写着:
找不到字段=<,>
variablelist:
负载,
来自[d: development userDocs expressiveDictionary.xlsx](ooxml,嵌入式标签,表为$(可扣除))其中[load flag];
sub GetVariables(TableName, ExcelTable, NameColumn, VariableColumn)
$(TableName):
LOAD
$(NameColumn),
$(ExpressionColumn)
FROM [D:DevelopmentUserDocsExpressionDictionary.xlsx] (ooxml, embedded labels, table is $(ExcelTable))
WHERE [Load Flag];
FOR counter = 1 TO NoOfRows('$(TableName)')
LET vVariable = Peek('$(NameColumn)', $(counter) -1, '$(TableName)');
LET $(vVariable) = Peek('$(ExpressionColumn)', $(counter) -1, '$(TableName)');
NEXT
LET vVariable = null();
LET counter = null();
end sub
call GetVariables('VariableList', 'Variables')
我知道它没有看到列的名称,但我不知道如何使其正常工作。我尝试过有或没有围绕加载脚本的美元扩展。我想念什么?
您拥有的getVariobles函数需要4个参数 - tablename,exceltEltable,excelteL,namecolumn和variablecolumn。
当您打电话给它时,您仅指定了第一个2,因此NameColumn和Varible列是空白的。要修复它,您需要告诉它,您希望加载的变量表中的列名是什么。可以是" variablename"one_answers" variablevalue",但我不能不看文件本身。
类似:
call GetVariables('VariableList','Variables','VariableName','VariableValue')
错误是因为它正在运行此代码:
VariableList:
LOAD
,
FROM [D:DevelopmentUserDocsExpressionDictionary.xlsx]
(ooxml, embedded labels, table is Variables)
WHERE [Load Flag];
请注意,加载语句中没有字段名称,因为这些变量值未定义。