本工作簿中检测到一个或多个无效名称。 这些无效名称已被更改为#REF

试图将单元格('CD')的值引用到特定的单元格,在OpenOffice中正常工作,但不适用于ms excel

for () { Name houseHoldRelationNamedCell = workbook.createName(); houseHoldRelationNamedCell.setNameName("name"+ loopCounter); houseHoldRelationNamedCell.setRefersToFormula("$"+ CellReference.convertNumToColString(hiddenCellColumn) +"$1"); DVConstraint constraintHouseholdRltn = DVConstraint.createFormulaListConstraint("name"+ beneficiaryRelationVO.getId()); CellRangeAddressList addressListHouseholdRltn = new CellRangeAddressList(row, totalRows, column-1, column-1); HSSFDataValidation validationHouseholdRltn = new HSSFDataValidation(addressListHouseholdRltn, constraintHouseholdRltn); validationHouseholdRltn.setSuppressDropDownArrow(false); sheet.addValidationData(validationHouseholdRltn); loopCounter++; } 

Excel错误:“在此工作簿中检测到一个或多个无效名称,这些无效名称已更改为#REF!

在ms excel“公式” – >“名称pipe理器”显示有效的名称+“循环计数器值”,但参考值为“=#NA!”。

通过查看您的代码。我发现,虽然您指的单元格只使用$CD1$ (CD是没有sheetname的示例单元格地址)。

当名称是Global(没有工作表参考)时,在OpenOffice Org中假设“当前”工作表(当前到名称的引用)。 MS Excel 2007+不这样做。 它需要图纸参考(Sheet1!name)

你的代码应该是这样的。

 houseHoldRelationNamedCell.setRefersToFormula("'sheetname'!$"+ CellReference.convertNumToColString(hiddenCellColumn) +"$1");