Excel interop在Office 2007和Office 365中提供不同的输出

问题描述

我有一个2012年为带有Office 2007的Widows7计算机开发的VBA应用程序,该应用程序在一组Excel上执行一些操作并生成一组Excel作为输出

现在,我在Windows 10计算机上使用Visual Studio 2017运行同一应用程序,它提供了一些Range Class方法异常。我通过将Activate方法放在Range类上方来解决它,并且应用程序生成输出。 / p>

下面是给出错误信息“范围类的选择方法失败”的初始代码

 Dim activeSheet As Worksheet = DirectCast(expression.ActiveSheet,Worksheet) 
 activeSheet.Range("A1","DW5").Select()

我通过如下修改解决

Dim activeSheet As Worksheet = DirectCast(expression.ActiveSheet,Worksheet)
activeSheet.Activate() 
activeSheet.Range("A1","DW5").Select()        

但是,在某些列中,使用Office 2007的Widows7计算机中生成输出和使用Office 365的Widows10计算机中生成输出在某些列中有所不同。

Interop版本或Excel中的计算方式是否有变化?我不知道这里出了什么问题!

任何帮助将不胜感激。

编辑:

好吧,我尝试在其中一台VM中安装Office2007。相同的代码在Office2007和Office365中提供不同的输出!它基于斜率计算。

这里有一些代码,但我确定实际上是什么。

 With xlApplication.WorksheetFunction
      dblSlop = .Index(.Linest(myArray),1)
      dblCoEfficient = .Index(.Linest(myArray,True),3)(1)
      dblResult = dblSlop * dblCoEfficient
 End With

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)