相关疑难解决方法(0)

调用退出后应用程序不退出

嘿家伙我有一个小问题,我似乎无法弄明白.我将DataGridView(它的内容)保存到xls文件.我没有遇到任何问题,除了我的任务管理器,它仍然显示它正在运行.我打过电话:

  xlApp.Application.Quit() 
Run Code Online (Sandbox Code Playgroud)

这被声明为:

  Dim xlApp As New excel.Application
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,但这与我让用户选择将其导出到Word文档时退出的方式相同.我不知道我哪里错了...

这是我的完整代码

Imports Word = Microsoft.Office.Interop.Word
 Imports Excel = Microsoft.Office.Interop.Excel

 Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    For x As Integer = 1 To 3500
        DataGridView1.Rows.Add(New Object() {"r" & x.ToString & "c1", "r" & x.ToString & "c2", "r" & x.ToString & "c3", "r" & x.ToString & "c4", "r" & x.ToString & "c5"})
    Next
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As …
Run Code Online (Sandbox Code Playgroud)

vb.net excel xls exit

15
推荐指数
1
解决办法
5万
查看次数

截至今天,使用COM对象的正确方法是什么?

这是一个非常常见的问题,我决定问这个问题,因为这个问题在今天可能会有不同的答案.希望这些答案有助于理解使用COM对象的正确方法.就个人而言,在对此主题发表不同意见后,我感到非常困惑.

在过去的5年中,我曾经使用COM对象,规则对我来说非常清楚:

  1. 在代码行中使用单个句点.使用多个句点在场景后面创建无法明确释放的临时对象.
  2. 不要使用foreach,而是使用for循环,并在每次迭代时释放每个项目
  3. 不要调用FInalReleaseComObject,而是使用ReleaseComObject.
  4. 不要使用GC释放COM对象.GC意图主要用于调试用法.
  5. 以与创建对象相反的顺序释放对象.

你们中的一些人在阅读完最后一行后可能会感到沮丧,这就是我所知道的如何正确创建/发布Com对象,我希望能得到更清晰无误的答案.

以下是我在这个主题上找到的一些链接.他们中的一些人告诉他们需要调用ReleaseComObject而其中一些不需要.

"...在VSTO场景中,您通常不必使用ReleaseCOMObject......."

"...您应该使用此方法释放包含引用的基础COM对象......"

更新:

这个问题被标记为过于宽泛.根据要求,我将尝试简化并提出更简单的问题.

  1. 使用COM对象或调用GC是否正确时,是否需要ReleaseComObject?
  2. VSTO方法是否会改变我们以前使用COM对象的方式?
  3. 我写的上述哪些规则是必需的,哪些是错的?还有其他人吗?

.net c# vb.net com excel

11
推荐指数
1
解决办法
2041
查看次数

使用 VB.NET 获取正在运行的 Excel 实例

我从这个答案中获取了以下工作代码:

Option Compare Binary
Option Explicit On
Option Infer On
Option Strict Off

Imports Microsoft.Office.Interop
Imports System.Collections.Generic
Imports System.Runtime.InteropServices

Friend Module Module1
    Private Declare Function GetDesktopWindow Lib "user32" () As IntPtr
    Private Declare Function EnumChildWindows Lib "user32.dll" (ByVal WindowHandle As IntPtr, ByVal Callback As EnumWindowsProc, ByVal lParam As IntPtr) As Boolean
    Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" (ByVal hWnd As IntPtr, ByVal lpClassName As String, ByVal nMaxCount As Integer) As Integer
    Private Delegate Function EnumWindowsProc(ByVal hwnd As …
Run Code Online (Sandbox Code Playgroud)

vb.net com excel exception excel-interop

3
推荐指数
1
解决办法
7430
查看次数

标签 统计

excel ×3

vb.net ×3

com ×2

.net ×1

c# ×1

excel-interop ×1

exception ×1

exit ×1

xls ×1