在VB.net里调用excel程序的时候的几个问题

如果调用了EXCEL,包括application,workbook,worksheet对象。调用结束后,是不是必须要有除了app.quit(),还要app=nothing... 如果调用了EXCEL,包括application, workbook, worksheet对象。调用结束后,是不是必须要有除了app.quit(),还要app=nothing, workbook=nothing, worksheet=nothing?否则是不是excel的进程总存在。

在其中设置单元格的类型(文本,数字等),如何直接设置一列,range()是否能实现?

用cells.num……local(忘记怎么拼写了)设置的时候各种格式都用什么来表示,有没有预定义的类型表示呢?

最后问问,是否是其他的所有操作都可以通过excel里面录制宏的方法,查看到各种设置的方法,是否都通用?

当不想用A,B,C……表示列,是否都可以用数字来表示?
展开
 我来答
miniappKq8uzxPOpBz4w
2011-01-27 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:121万
展开全部
如果调用了EXCEL,包括application, workbook, worksheet对象。调用结束后,是不是必须要有除了app.quit(),还要app=nothing, workbook=nothing, worksheet=nothing?否则是不是excel的进程总存在。
------------------------------------------------------
不用肯定不行,用了未必都行,有的时候EXCEL。EXE死活都在运行

在其中设置单元格的类型(文本,数字等),如何直接设置一列,range()是否能实现?
------------------------------------------------------
全选一列,再设置单元格,录制宏看一下脚本

用cells.num……local(忘记怎么拼写了)设置的时候各种格式都用什么来表示,有没有预定义的类型表示呢?
----------------------------------------------
不知道
最后问问,是否是其他的所有操作都可以通过excel里面录制宏的方法,查看到各种设置的方法,是否都通用?
-----------------------------------
基本都可以实现

当不想用A,B,C……表示列,是否都可以用数字来表示?
--------------------------------------
可以,RANGE里的参数可以是数字
bpkdww
2011-01-27 · TA获得超过1800个赞
知道小有建树答主
回答量:1140
采纳率:100%
帮助的人:285万
展开全部
你上面的程序出错后会直接退出的。
解决方法是在主程序装载时检测系统是否安装了EXCEL.
代码如下:
Private Declare Function RegOpenKey Lib _
"advapi32" Alias "RegOpenKeyA" (ByVal hKey _
As Long, ByVal lpSubKey As String, _
phkResult As Long) As Long

Private Declare Function RegQueryValueEx _
Lib "advapi32" Alias "RegQueryValueExA" _
(ByVal hKey As Long, ByVal lpValueName As _
String, lpReserved As Long, lpType As _
Long, lpData As Any, lpcbData As Long) _
As Long

Private Declare Function RegCloseKey& Lib _
"advapi32" (ByVal hKey&)

Private Const REG_SZ = 1
Private Const REG_EXPAND_SZ = 2
Private Const ERROR_SUCCESS = 0
Private Const HKEY_CLASSES_ROOT = &H80000000
Dim Msg As String

Public Function GetRegString(hKey As Long, _
strSubKey As String, strValueName As _
String) As String
Dim strSetting As String
Dim lngDataLen As Long
Dim lngRes As Long
If RegOpenKey(hKey, strSubKey, _
lngRes) = ERROR_SUCCESS Then
strSetting = Space(255)
lngDataLen = Len(strSetting)
If RegQueryValueEx(lngRes, _
strValueName, ByVal 0, _
REG_EXPAND_SZ, ByVal strSetting, _
lngDataLen) = ERROR_SUCCESS Then
If lngDataLen > 1 Then
GetRegString = Left(strSetting, lngDataLen - 1)
End If
End If

If RegCloseKey(lngRes) <> ERROR_SUCCESS Then
MsgBox "RegCloseKey Failed: " & _
strSubKey, vbCritical
End If
End If
End Function
Public Function FileExists(sFileName$) As Boolean
On Error Resume Next
FileExists = IIf(Dir(Trim(sFileName)) <> "", _
True, False)
End Function
Public Function IsAppPresent(strSubKey$, _
strValueName$) As Boolean
IsAppPresent = CBool(Len(GetRegString(HKEY_CLASSES_ROOT, _
strSubKey, strValueName)))
End Function
Private Sub Form_Load()
If IsAppPresent("Excel.Sheet\CurVer", "") = False Then
MsgBox "抱歉,您的系统中未安装Excel,本程序将不能正常运行!"
End If
End Sub

你补充问题中所说的现象是不会出现的。在主程序中只是个出现个提示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
涂梓颖29
2011-01-27 · TA获得超过102个赞
知道小有建树答主
回答量:146
采纳率:100%
帮助的人:64.7万
展开全部
Office 的支持不是很好,经常会出错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
719366461
2017-06-07 · TA获得超过3.6万个赞
知道大有可为答主
回答量:3.6万
采纳率:22%
帮助的人:2157万
展开全部
vb.net没用过,vb6.0的话可以用getobject这种方法,你可以改改试试,看能不能用

Dim xlApp As Object
Set xlApp = GetObject(ExcelFileName).Application '获取Excel对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式