利用VB编程使用OLE时,要考虑到Object在OLE服务器中是否创建,如果已经创建,则用CreateObject时会出现 Chang所说的错误,llm06所写的程序并不完全,应为: dim excelapp as object on local error resume next Set ExcelApp = GetObject("excel.application")if excelapp is nothing then Set ExcelApp = CreateObject("excel.application") end ifon local error goto 0 ExcelApp.Workbooks.Open App.Path & "\pers.xls", ReadOnly:=False
Thanks tanhl 我试用了一下很好再问一下为什么,excel 文件一直是只读的?
chang: 要想更方便地使用Excel,你在设置对象时可以将ExcelApp设为 Dim ExcelApp As Excel.Application 在打开文件后,加上一条语句: ExcelApp.Visible=True 此时应可看到,打开的文件并不是只读的,可以对打开的文件进行编辑与保存,所以我并不明白你所说的打开文件一直是只读是什么意思,也许是你后台一直有此文件的一个拷贝在运行?你可以试用“CTRL+ALT+DEL”来看看后台的进程。 另外,对文件操作完成后,应该注意将对象清空,即在最后加上 For Each EBK In ExcelApp.Workbooks 'EBK为Excel.WorkBook EBK.Close Next Set ExcelApp = Nothing 有关利用VB及VBA混合编程的问题,你可以利用Excel自带的“录制宏”的功能将VBA所需代码录制下来,直接在VB中使用。
tan说的对 应该用 Dim ExcelApp As Excel.Application set excelapp=new excel.application用Set ExcelApp = GetObject("excel.application")不好
我在给人家写程序,客户要求用计算机来考 Microsoft Excel 操作题并机器自动阅卷。 下面是我的程序片段,希望对你有帮助。 Dim e_App,e_Workbook,e_Sheet1,e_Sheet2 as Object Set e_App = CreateObject("Excel.Application") With e_App .Visible = False Set e_Workbook = .Workbooks.Add Set e_Sheet1 = e_Workbook.Sheets(1) '第一张表 Set e_Sheet2 = e_Workbook.Sheets(2) '一些处理 .Visible = True End With对于 Dim ExcelApp As Excel.Application 我觉得不是很好,至少我从来未成功过。 Dim ExcelApp as Excel.Application.9 等依赖于Office的版本号。可能有8,85,9等。谁又能保证安装后的机器上一定按一个版本Office呢。
Set ExcelApp = CreateObject("excel.application")
ExcelApp.Workbooks.Open App.Path & "\pers.xls", ReadOnly:=False以上代码确保运行无误
如果您属于以上情况可:
您可以新建一个工程,并且将窗体文件或其他类文件等加入到工程就会好用。
dim excelapp as object
on local error resume next
Set ExcelApp = GetObject("excel.application")if excelapp is nothing then
Set ExcelApp = CreateObject("excel.application")
end ifon local error goto 0
ExcelApp.Workbooks.Open App.Path & "\pers.xls", ReadOnly:=False
我试用了一下很好再问一下为什么,excel 文件一直是只读的?
要想更方便地使用Excel,你在设置对象时可以将ExcelApp设为
Dim ExcelApp As Excel.Application
在打开文件后,加上一条语句:
ExcelApp.Visible=True
此时应可看到,打开的文件并不是只读的,可以对打开的文件进行编辑与保存,所以我并不明白你所说的打开文件一直是只读是什么意思,也许是你后台一直有此文件的一个拷贝在运行?你可以试用“CTRL+ALT+DEL”来看看后台的进程。 另外,对文件操作完成后,应该注意将对象清空,即在最后加上
For Each EBK In ExcelApp.Workbooks 'EBK为Excel.WorkBook
EBK.Close
Next
Set ExcelApp = Nothing 有关利用VB及VBA混合编程的问题,你可以利用Excel自带的“录制宏”的功能将VBA所需代码录制下来,直接在VB中使用。
应该用
Dim ExcelApp As Excel.Application
set excelapp=new excel.application用Set ExcelApp = GetObject("excel.application")不好
下面是我的程序片段,希望对你有帮助。
Dim e_App,e_Workbook,e_Sheet1,e_Sheet2 as Object
Set e_App = CreateObject("Excel.Application")
With e_App
.Visible = False
Set e_Workbook = .Workbooks.Add
Set e_Sheet1 = e_Workbook.Sheets(1) '第一张表
Set e_Sheet2 = e_Workbook.Sheets(2)
'一些处理
.Visible = True
End With对于 Dim ExcelApp As Excel.Application
我觉得不是很好,至少我从来未成功过。
Dim ExcelApp as Excel.Application.9 等依赖于Office的版本号。可能有8,85,9等。谁又能保证安装后的机器上一定按一个版本Office呢。