【发布时间】:2020-01-31 16:35:41
【问题描述】:
问题已经解决了。
似乎不久前我在进行一些更改以捕获数据时,无意中破坏了事物的顺序。当上面的代码运行时,[Date Out:] 列确实是空的,所以 Excel 可以正确报告。
我已经对公式的输入进行了重新排序,现在工作表可以正常工作,这归功于@BigBen 和@Michael Wycisk。
我创建了一个 Excel 工作表,将其他几个 Excel 工作表中的数据合并为一个以跟踪项目。
我有一个公式,如果它被写入一系列单元格,源数据表在后台打开,则该公式有效。如果我要求宏在主工作表打开时将其放入所需的单元格,则公式将失败。通过“失败”,我的意思是公式检查它的第一列以查看数据是否存在,然后确定该列是空的,因此如果“日期输出”列中有日期,则错误地报告“未发送任何内容” .
这是有问题的行。
WSR.Range("ReportTable[Latest Portare Instance:]") = "=IFERROR(IF([Date out:]="""",""Nothing Sent"",IF(AND([Received by Serial:]="""",[Received by Asset:]=""""),""Not Received"",IF([Received by Asset:]<>"""",LOOKUP(2,1/('Stock Movement Archive Defra.xlsx'!Archive[Asset No:]=$J2),'Stock Movement Archive Defra.xlsx'!Archive[Location:]),LOOKUP(2,1/('Stock Movement Archive Defra.xlsx'!Archive[S/No:]=$I2),'Stock Movement Archive Defra.xlsx'!Archive[Location:])))),""Issue"")"
这是几个公式之一,都以相同的方式插入,其余的工作。据我所知,公式已正确插入,只是这个公式在第一个 if 语句处停止。
作为参考,我尝试将第一个“if”语句更改为以IF([Date out:]<>"""" 开头,然后该公式要么在没有日期的情况下声明“未收到任何内容”,要么在有日期的情况下提取正确的数据。还尝试更改“Date Out”列的格式。
【问题讨论】:
-
用 Formulas > Evaluate Formula 评估公式是否提供更多详细信息?
-
谢谢@BigBen,但运行评估并没有引发任何问题。
-
Excel 如何知道
'Stock Movement Archive Defra.xlsx'的保存位置?如果工作簿未打开,则需要完整路径。 -
宏打开所需的源表以便可以检索数据,完成后关闭源表。
-
您能否解释一下“但是如果我要求宏在主工作表打开时将其放入所需的单元格中,那么公式将失败”? “当主表打开时”是什么意思?也许我们需要更多代码。