请问怎么用vb6操作已经打开的excel表格文件

PrivateSubCommand2_Click()DimxlAppAsExcel.Application'定义EXCEL对象变量DimxlBookAsExcel.Wor... Private Sub Command2_Click()
Dim xlApp As Excel.Application '定义EXCEL对象变量Dim xlBook As Excel.WorkbookDim xlSheet As Excel.Worksheet
Set xlApp = GetObject(, "Excel.Application")
Set xlBook = xlApp.Workbooks.open("c:\1.xls") '这个地方总是提示已经打开Set xlSheet = xlBook.Worksheets(1)xlSheet.Cells(1, 2) = "11111"
End Sub
展开
 我来答
敏锐还宁静丶行家0
2013-02-01 · TA获得超过6870个赞
知道大有可为答主
回答量:3502
采纳率:0%
帮助的人:1771万
展开全部
一、检查是否你已经手动打开了c:\1.xls文件?
Set xlBook = xlApp.Workbooks.open("c:\1.xls") 语句的意思是打开c:\1.xls文件,因此,
对于已经打开的c:\1.xls文件,不能执行 Set xlBook = xlApp.Workbooks.open("c:\1.xls") 语句。
二、在每次执行完xlApp对象,需要关闭它才可以再次用代码打开。
如果不关闭代码打开的对象,也会像上面说的那样,出现已经打开文件的错误提示。
在你的事例中,Set xlSheet = xlBook.Worksheets(1)xlSheet.Cells(1, 2) = "11111" 是最后一句
处理 excel 工作表的语句,因此应把关闭对象代码放到这句后面。即:
Private Sub Command2_Click()
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
'Set xlApp = GetObject(, "Excel.Application")
Set xlBook = xlApp.Workbooks.open("c:\1.xls")
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Cells(1, 2) = "11111"
xlBook.Save
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
追问
你没有明白我的意思,比如我有1.xls文件,并且我通过判断知道这个文件已经打开,接下来根据Set xlApp = GetObject(, "Excel.Application")获取到已经打开的xlapp对象,我的问题是如何获取1.xls的xlBook对象呢?现在我的问题自己解决了,只需要Set xlBook = xlApp.Workbooks(“1.xls”)就可以了,这样就能实现对已经打开的表格直接操作的目的了!不管怎么样,谢谢您的回答!
追答
嗯~~不好意思。。的确没弄明白。。
如果是这个要求,没必要那么多代码,全部代码只用下面两行就可以了:
Windows("1").Activate ' 文件1.xls获得焦点
Sheets(1).Cells(1, 2) = "11111" ' 向第一张工作表的B1单元格写入数据
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式