我使用Visual Studio 2010 Express编写了一个vb.net程序来打开和操作Excel工作簿。我有MS Office 2010,我的程序在我的电脑上正常工作。当我试图在我妻子的电脑上运行它时......什么都没有。我没有收到任何错误信息。她与我的Office版本相同,但是她拥有Windows XP,而且我拥有Vista,而且她的电脑拥有比我的安全协议更多的安全协议,但是我的其他程序(不导入任何Office命名空间)在她的计算机上运行良好。我的用于Excel的vb.net程序不会在其他计算机上运行
当我看到她的计算机上的任务管理器没有什么应用程序选项卡下,但进程选项卡下,我看到EXCEL.EXE的实例,如果我尝试再次运行程序,在应用程序仍然一无所获,但在进程下的另一个Excel.exe实例。
我试图使用Click-Once技术安装我的程序,并在重建之后安装Release文件夹。
我也试着在2.0,3.0等版本下编译它......没什么。
下面是一些相关的代码:
Public Class CleanUpDataForm
Dim m_objExcel As New Excel.Application
Dim m_rngRange, m_rngEnd As Excel.Range
Dim m_blnEntireRow, m_blnCancel As Boolean
Dim m_strRange, m_strSearch, m_strLogFrameCode As String
Const c_strCode As String = "log"
Friend Const c_intScrollBarWidth As Integer = 30
Private Sub CleanUpDataForm_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
m_objExcel = Nothing
Dispose()
End Sub
Private Sub tsbOpen_Click(sender As System.Object, e As System.EventArgs) Handles tsbOpen.Click
ofdGetWorksheet.Title = "Select Worksheet"
ofdGetWorksheet.Filter = "All Excel Files (*.xl*)|*.xl*|(*.xlsx)|*.xlsx|(*.xlsm)|*.xlsm|(*.xlsb)|*.xlsb|(*.xlam)|*.xlam|(*.xltx)|*.xltx|(*.xltm)|*.xltm|(*.xls)|*.xls|(*.xla)|*.xla|(*.xlt)|*.xlt|(*.xlm)|*.xlm|(*.xlw)|*.xlw"
ofdGetWorksheet.FileName = ""
If ofdGetWorksheet.ShowDialog <> System.Windows.Forms.DialogResult.Cancel Then
Me.Text = ofdGetWorksheet.FileName
m_objExcel.Workbooks.Open(Me.Text)
tsbCopySheet.Enabled = True
tsbFindRows.Enabled = True
tsbClose.Enabled = True
m_objExcel.Visible = True
Else
Me.Text = ""
End If
Me.Activate()
End Sub
任何想法?
这是不可能的指导或排除故障查看你的代码。 –
听起来像一个DLL可能会丢失,但正如Jusin Satyr所说,如果您不提供代码,我们无法帮助您...... – Sam