同步我的现金流模型时,出现以下错误:
De feiten kunnen niet in Excel cellen geplaatst worden door fouten in de formules. Bijvoorbeeld de expressie '=SUMIF(BALTable[ID], "=" & [ID], BALTable[Close])' veroorzaakt een fout in cel AP!G7.
Corrigeer deze fout eerst en probeer het opnieuw.
U moet de Engelse versie gebruiken van Excel formules zoals 'SUM' in plaats van het Nederlandse 'SOM'.
Bovendien moet u een komma ',' gebruiken als scheider voor functieparameters in plaats van de puntkomma ';'.
翻译成英文:
The facts can not be put into Excel cells due to errors in the formulas.
For instance, the expression '=SUMIF(BALTable[ID], "=" & [ID], BALTable[Close])' causes an error at cell AP!G7.
Please fix this error first and try again.
You must use the English versions of Excel formulas such as 'SUM' instead of the Dutch 'SOM'.
Also, you must use a comma ',' as separator for function arguments instead of a semicolon ';'.
完整错误堆栈:
Type: System.Runtime.InteropServices.COMException
bij System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
bij CallSite.Target(Closure , CallSite , ComObject , Object )
bij CallSite.Target(Closure , CallSite , Object , Object )
bij Invantive.Producer.Control.Utility.SetExcelRangeValues(ModelCache modelCache, Workbook workbook, Range range, Object[,] values) in File169:regel 5290Type: Invantive.Configuration.ValidationException
bij Invantive.Configuration.ValidationException..ctor(String errorCode, String errorMessage, String kindRequest, String localStackTrace, String nk, Exception innerException)
bij Invantive.Producer.Control.Utility.SetExcelRangeValues(ModelCache modelCache, Workbook workbook, Range range, Object[,] values)
bij Invantive.Producer.Control.SyncToDatabaseForm.SyncDownloadRows(SystemWorkingContext context, iea_blocks_v block, Int32 numberOfRows, Int32 fakeRowCount, Int32 numberOfColumns, ResultSet resultTable, Decimal step, Int32 currentBlock, Int32 idColumnNumber, Int32 transactionColumnNumber, Point3d dataStartPoint, Dictionary`2 additionalSelectFields, Dictionary`2 fieldsByNameDictionary, Dictionary`2 columnBeginAndEndPoints, Dictionary`2 blocksByCodeDictionary, List`1 fields, Dictionary`2 blockDimensions, ConcurrentBag`1 expressionFieldForCheckPendingChange, Cube innerBorder)
bij Invantive.Producer.Control.SyncToDatabaseForm.SyncDownload(DoWorkEventArgs e)
bij Invantive.Producer.Control.SyncToDatabaseForm.syncBackGroundWorker_DoWork(Object sender, DoWorkEventArgs e)
bij System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
bij System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
bij System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
bij System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
bij System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(Object o)
bij System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
bij System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bij System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
bij System.Threading.ThreadPoolWorkQueue.Dispatch()
bij System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
bij Invantive.Producer.Control.Utility.SetExcelRangeValues(ModelCache modelCache, Workbook workbook, Range range, Object[,] values) in File169:regel 5352
bij Invantive.Producer.Control.SyncToDatabaseForm.SyncDownloadRows(SystemWorkingContext context, iea_blocks_v block, Int32 numberOfRows, Int32 fakeRowCount, Int32 numberOfColumns, ResultSet resultTable, Decimal step, Int32 currentBlock, Int32 idColumnNumber, Int32 transactionColumnNumber, Point3d dataStartPoint, Dictionary`2 additionalSelectFields, Dictionary`2 fieldsByNameDictionary, Dictionary`2 columnBeginAndEndPoints, Dictionary`2 blocksByCodeDictionary, List`1 fields, Dictionary`2 blockDimensions, ConcurrentBag`1 expressionFieldForCheckPendingChange, Cube innerBorder) in File170:regel 3466
bij Invantive.Producer.Control.SyncToDatabaseForm.SyncDownload(DoWorkEventArgs e) in File170:regel 2332
如何解决这个问题?
答案1
从错误消息中可以看出,它试图创建一个“无效”的公式。在这种情况下,它可能意味着引用的表或其列不存在。从命名来看,我猜你正在使用我们的一个演示模型(我在提供该软件的公司工作)。
原因
最有可能发生的事情是,您在现有工作表之间的某个位置创建了新工作表。从模型编辑器中可以看到,块的名称与工作表的名称不对应:
这导致公式失败,因为AP
没有包含该列的表ID
。
怎么解决
最重要的规则是始终在模型末尾插入新表。如果您插入了一张表,请通过同步它来测试模型是否仍然有效。
如果您确实需要(或想要)在中间插入工作表,请先通过发布到新模型清空模型(这会重置所有布局和数据),然后添加工作表。第一次同步后,您必须再次执行此步骤。
我将看看我们是否可以进行一些检查,以防止用户因意外插入工作表而破坏模型。