我在IMPORTHTML函数生成的一些数据上使用VLOOKUP发布了Google脚本。
对于正常的用户交互,这似乎不是一个问题,但是访问VLOOKUP单元的脚本偶尔会返回#N/A,即使您可以清楚地看到单元格和VLOOKUP数据中的数据。这种情况似乎发生在使用纸张超过20分钟后。我会说大约有20%的时间会发生这种情况。
强制IMPORTHTML刷新有50到50的机会解决问题,有时您需要做两次。如果不起作用,我们就关闭并重新打开工作表。
我从一个非常简单的"theSheet.getRange(theRow,10).getDisplayValue()“脚本调用中提取数据,并且确信theRow被正确地设置为一个真实的行。
有没有其他人看到这一点,你能给出一个可行的解决方案吗?
RawData选项卡隐藏的数据来自"IMPORTHTML("http://www.foobar.org/Ajax.php?Act=7","table",2)“具有命名范围的CustData,最后如下所示:

vlookup只是"=vlookup( A7,RawData!K:L,2,true)“,A7是一个数据验证下拉列表。
获取#N/A的代码是从CustomerSSID触发器调用的以下代码段中的OnEdit :属性:
var theData =
{
DSAmClean: PropertiesService.getUserProperties().getProperty('DSAmClean'),
ServerIP: theSheet.getRange('ServerIP').getDisplayValue(),
ServerPort: theSheet.getRange('ServerPort').getDisplayValue(),
SheetName: theSheet.getName(),
Row: theRow,
Col: theCol,
Notes: theNotes,
colTitle: theSheet.getRange(2,theCol).getValue(),
cellValue: theSheet.getRange(theRow,theCol).getDisplayValue(),
DeliveryDate: theSheet.getRange(theRow,1).getDisplayValue(),
CustomerName: theSheet.getRange(theRow,2).getDisplayValue(),
CustomerSSID: theSheet.getRange(theRow,3).getValue(),
ProdSSID: theSheet.getRange(theRow,4).getDisplayValue(),
ProductShipped: theSheet.getRange(theRow,5).getDisplayValue().toString(),
ContractSales: theSheet.getRange(theRow,6).getDisplayValue(),
OriginPoint: theSheet.getRange(theRow,7).getDisplayValue(),
VendorName: theSheet.getRange(theRow,8).getDisplayValue(),
VendorSSID: getSSIDFromVendorName(theSheet.getRange(theRow,8).getDisplayValue()),
Margin: theSheet.getRange(theRow,9).getValue(),
FOBPrice: theSheet.getRange(theRow,10).getValue(),
PurchaseContract: theSheet.getRange(theRow,11).getDisplayValue(),
LoadNumber: theSheet.getRange(theRow,12).getDisplayValue(),
TruckingCompany: theSheet.getRange(theRow,13).getDisplayValue(),
TruckingRate: theSheet.getRange(theRow,14).getValue(),
ShippingWeight: theSheet.getRange(theRow,15).getValue(),
FreightTotal: theSheet.getRange(theRow,16).getValue()
}当然,第3列包含Vlookup。
发布于 2019-02-04 23:47:01
我认为,在像您这样的情况下,最可靠的方法是避免使用诸如IMPORTHTML、IMPORTRANGE等函数,因为它们不会在每次重新计算时刷新,或者在依赖于这些公式的结果的行代码之前强制“刷新”相应的公式。
https://webapps.stackexchange.com/questions/124954
复制相似问题