我使用 Visual Studio 2010 Express 编写了一个 vb.net 程序来打开和操作 Excel 工作簿。我有 MS Office 2010,我的程序在我的电脑上运行良好。当我尝试在我妻子的电脑上运行它时......什么也没有。我没有收到任何错误消息...什么也没有。她和我有相同版本的 Office,但她有 Windows XP,我有 Vista,她的计算机比我的计算机具有更多的安全协议,但我的另一个程序,它不导入任何 Office 命名空间,在她的计算机上运行良好。
当我查看她计算机上的任务管理器时,“应用程序”选项卡下没有任何内容,但在“进程”选项卡下,我看到了 Excel.exe 的一个实例,如果我再次尝试运行该程序,应用程序下仍然没有任何内容,但还有另一个进程下的 Excel.exe 实例。
我曾尝试使用 Click-Once 技术安装我的程序,并且在 Rebuild 后仅使用 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
有任何想法吗??