none
Application错误提示 RRS feed

  • 问题

  • 请问一下:
    我在PC1上调试一代码(VB.NET+Access),会出现一些错误提示:
    如(1) 类型“System.Windows.Forms.Application”没有构造函数。
    (2) “Visible”不是“System.Windows.Forms.Application”的成员。
    相应地也出现了不少“未定义类型Name”的错误。

    而在另PC2上调试却不会出现任何错误提示。

    请问这是什么原因?该如何解决?

    2010年1月7日 2:54

答案

  • 我用注释帮你解释一下!
    Imports Microsoft.Office.Interop.Excel
    Public Class ExportODTableToExcel
        Public Sub ODTableToExcel(ByVal filePath As String, ByVal pODTable As IOStudio.Model.ODTable)
            Dim xApp As New Application    '这里应该是Application,你拼写有问题

            If xApp Is Nothing Then
                MessageBox.Show("Excel应用程序无法启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If

            xApp.Visible = False      'Application无法实例,而且Application并没有Visible属性

            Dim WB As Workbook            '不知道你的问题在哪里啊!
            Dim WS As Worksheet           '不知道你的问题在哪里啊!
            WB = xApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet) ‘Application没有Workbook属性,不知道你要实现什么!
            WS = WB.Worksheets.Item(1)
    ......
    End Sub
    End Class
    周雪峰
    • 已标记为答案 菜菜hawk 2010年1月7日 8:42
    • 取消答案标记 菜菜hawk 2010年1月7日 8:44
    • 已标记为答案 菜菜hawk 2010年1月7日 8:47
    2010年1月7日 3:59
    版主
  • 你这样修改试试:
    Dim xApp As New Microsoft.Office.Interop.Excel.ApplicationClass
    另外需要添加microsoft.office.interop.excel引用!
    周雪峰
    • 已标记为答案 菜菜hawk 2010年1月7日 8:46
    2010年1月7日 4:48
    版主
  • 引用“Microsoft Excel 11.0 Object Library”

    设置引用属性"复制到本地"=TRUE
    http://feiyun0112.cnblogs.com/
    • 已标记为答案 菜菜hawk 2010年1月7日 8:47
    2010年1月7日 7:41
    版主

全部回复

  • 重新生成看看
    VS版本是不是一样?
    出错代码是什么?
    http://feiyun0112.cnblogs.com/
    2010年1月7日 3:09
    版主
  • 重新生成看看
    VS版本是不是一样?
    出错代码是什么?
    http://feiyun0112.cnblogs.com/


    PC2上的开发平台VB.NET 2005和项目源代码都是从PC1拷贝过去的。不存在版本的问题。
    下面是我其中的一段代码,请你帮忙看看:
    Imports Microsoft.Office.Interop.Excel
    Public Class ExportODTableToExcel
        Public Sub ODTableToExcel(ByVal filePath As String, ByVal pODTable As IOStudio.Model.ODTable)
            Dim xApp As New Applicatio    '出现问题1

            If xApp Is Nothing Then
                MessageBox.Show("Excel应用程序无法启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If

            xApp.Visible = False      '出现问题2

            Dim WB As Workbook            '出现问题3
            Dim WS As Worksheet            '出现问题4
            WB = xApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet)
            WS = WB.Worksheets.Item(1)
    ......
    End Sub
    End Class
    (主要问题代码有:出现问题1、2、3、4.)

    • 已标记为答案 菜菜hawk 2010年1月7日 8:43
    • 取消答案标记 菜菜hawk 2010年1月7日 8:45
    2010年1月7日 3:27
  • 我用注释帮你解释一下!
    Imports Microsoft.Office.Interop.Excel
    Public Class ExportODTableToExcel
        Public Sub ODTableToExcel(ByVal filePath As String, ByVal pODTable As IOStudio.Model.ODTable)
            Dim xApp As New Application    '这里应该是Application,你拼写有问题

            If xApp Is Nothing Then
                MessageBox.Show("Excel应用程序无法启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If

            xApp.Visible = False      'Application无法实例,而且Application并没有Visible属性

            Dim WB As Workbook            '不知道你的问题在哪里啊!
            Dim WS As Worksheet           '不知道你的问题在哪里啊!
            WB = xApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet) ‘Application没有Workbook属性,不知道你要实现什么!
            WS = WB.Worksheets.Item(1)
    ......
    End Sub
    End Class
    周雪峰
    • 已标记为答案 菜菜hawk 2010年1月7日 8:42
    • 取消答案标记 菜菜hawk 2010年1月7日 8:44
    • 已标记为答案 菜菜hawk 2010年1月7日 8:47
    2010年1月7日 3:59
    版主
  • 问题1:Dim xApp As New Application   '这里刚才注释时弄掉了一个“n”,这里的错误提示是:'xApp',类型“System.Windows.Forms.Application”没有构造函数。
    这条语句能不能改为:Dim xApp As New Excel.Application   ???
    问题2:xApp.Visible = False      'Application无法实例,而且Application并没有Visible属性。就是说“Visible”不是“System.Windows.Forms.Application”的成员吧?! 这怎么解决?
    问题3、4一样:是因为问题1所引起的类型未定义。
    先谢谢您了。

    2010年1月7日 4:22
  • 你这样修改试试:
    Dim xApp As New Microsoft.Office.Interop.Excel.ApplicationClass
    另外需要添加microsoft.office.interop.excel引用!
    周雪峰
    • 已标记为答案 菜菜hawk 2010年1月7日 8:46
    2010年1月7日 4:48
    版主
  • 你这样修改试试:
    Dim xApp As New Microsoft.Office.Interop.Excel.ApplicationClass
    另外需要添加microsoft.office.interop.excel引用!
    周雪峰

    根据您的指导,代码上的error已经改好了。
    不过,我刚才重新安装了Office2003,添加引用中还是没有“microsoft.office.interop.excel”这个选项,您知道是怎么回事吗?
    2010年1月7日 7:10
  • 引用“Microsoft Excel 11.0 Object Library”

    设置引用属性"复制到本地"=TRUE
    http://feiyun0112.cnblogs.com/
    • 已标记为答案 菜菜hawk 2010年1月7日 8:47
    2010年1月7日 7:41
    版主
  • 引用“Microsoft Excel 11.0 Object Library”

    设置引用属性"复制到本地"=TRUE
    http://feiyun0112.cnblogs.com/

    请问,一般情况,哪些 引用的属性需要把“复制到本地”改为True?
    2010年1月7日 7:59
  • 在添加引用的.NET选项卡下啊!
    周雪峰
    2010年1月7日 8:04
    版主
  • 在添加引用的.NET选项卡下啊!
    周雪峰
    嗯,我知道是在.NET选项卡选择下,不过,我.NET选项卡里只有4个:Microsoft.Office.Tools.Common;Microsoft.Office.Tools.Excel;Microsoft.Office.Tools.Outlook;Microsoft.Office.Tools.Word。
    2010年1月7日 8:20
  • Application错误已搞定,谢谢周雪峰大虾还有feiyun0112。
    2010年1月7日 8:53
  • 不客气啊!
    周雪峰
    2010年1月7日 10:06
    版主