我正在尝试编写一些代码,以自动化我们公司在64个电子表格中进行的搜索,每个电子表格包含6个子工作表。由于典型的大公司“左手,右手”问题以及严格的政策,合并电子表格不是一种选择。因此,我正在查看一个电子表格,该电子表格在所有电子表格中搜索给定的业务名称,但是在创建指向每个电子表格和子工作表的直接链接时,我试图动态生成子工作表。>
直接链接到电子表格的代码: 使用SumProduct:
=SUMPRODUCT(--('\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]Irregularities'!$A:$A=J5))
使用VLookup:
=(IFERROR(IF(VLOOKUP(J5,'\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]Irregularities'!$A:$A,1,FALSE)=J5,"Yes","No"),"No"))
在这种情况下,“ J5”指的是用于搜索的单元格(在这种情况下为“ Megginson”,并且搜索运行良好。
但是,当尝试动态生成链接时,我一直试图将地址连接起来,以便可以动态生成对子工作表的引用。这是我用于SumProduct尝试生成的代码:
=SUMPRODUCT(--("'\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]" & Lists!A2:A7 & "!$A:$A=" & $J$5 ))
(注意:对于任何其他屏幕截图,“ Lists!A2:A7”将是“ Lists!:A2”,以提高可读性)
但是,此代码会产生#value错误。现在,根据公式求值框,该代码以数组的形式生成了到工作表的链接,因此可以正常工作。这是评估框在生成#value错误之前显示的内容:
现在,我注意到结尾处的“ megginson”部分似乎失去了引号,我认为这可能是原因,因此我将SumProduct代码的末尾修改为:
"!$A:$A=" & CHAR(34) & $J$5 & CHAR(34)
但这就是评估在生成错误之前显示的内容
现在似乎结尾处的引号太多。我尝试过在J5参考周围添加引号的各种组合,但没有一个可以解决问题。
我还尝试使用VLookup来代替,使用此代码动态生成链接:
=VLOOKUP(J5,"\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]" & "Irregularities!" & "$A:$A",1,FALSE)
这也会产生相同的#value错误。
这是VLookup失败之前的公式评估
这真的让我感到困惑,因为除了引号之外,我在功能上看不到直接链接到不规则电子表格的代码与尝试动态生成链接的代码之间的输出差异。标记(当公式评估时,我认为该标记会消失吗?)。
直接链接(公式计算得出返回结果之前的步骤):
=VLOOKUP("Megginson ",'\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]Irregularities'!$A:$A,1,FALSE)
动态链接(公式评估为失败前执行步骤):
=VLOOKUP("Megginson ", "'\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]Irregularities'!$A:$A",1,FALSE)
现在,我认为问题在于尝试通过级联生成外部工作表引用,但是我绝对不知道如何修改代码,以便正确生成链接(假设这是怎么回事)。如果有人可以通过告诉我出了什么问题来帮助我,我将非常感激。
干杯!
答案 0 :(得分:0)
我相信,Excel的INDIRECT()
函数可用于此类目的-它返回引用,您可以通过串联(<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="form-group row">
<!--Row two-->
<div class="col-md-8 forLabels">
<div class="col-md-6"></div>
<asp:Label ID="EmpFatherEmployeeNo" for="EmpFatherEmployeeNo" runat="server" Visible="True">Father Employee Number*</asp:Label>
<asp:DropDownList ID="ddFatherEmployeeNumber" runat="server" CssClass="input-sm form-control custom" AutoPostBack="True" DataTextField="EmployeeNo" DataValueField="Id" OnSelectedIndexChanged="ddFatherEmployeeNumber_SelectedIndexChanged" ClientIDMode="Static" AppendDataBoundItems="true"></asp:DropDownList>
</div>
<div class="col-md-4 forLabels">
<asp:Label ID="EmpFatherName" for="EmpFatherName" runat="server">Father Name</asp:Label>
<asp:DropDownList ID="ddEmployeeFatherName" runat="server" DataTextField="Name" DataValueField="Id" CssClass="input-sm form-control"></asp:DropDownList>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
)文件名/路径和标签名来构成引用。