| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 981 人关注过本帖
标题:VB操控EXCEL总是报错,求指点~
只看楼主 加入收藏
xingming022
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2015-1-26
结帖率:50%
  已结贴   问题点数:20  回复次数:10   
VB操控EXCEL总是报错,求指点~
Private Sub Command6_Click()
    Set xlApp = CreateObject("excel.application")
    Set xlbook = xlApp.ActiveWorkbook     
    Set xlsheetA = xlbook.Worksheets(1)
    Set xlsheetB = xlbook.Worksheets(2)
End sub
我就是想对一个已经打开的EXCEL进行操作,不知怎么编写代码~

[此贴子已经被作者于2018-2-27 09:40编辑过]

2018-02-26 17:31
HVB6
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:276
专家分:416
注 册:2013-10-30
  得分:4 
回复 楼主 xingming022
您的代码是新建立一工作簿,而一般新建立工作簿是3个工作表,所以
红色的代码报错:
Private Sub Command6_Click()
    Set xlApp = CreateObject("excel.application")
    Set xlbook = xlApp.ActiveWorkbook     
    Set xlsheetA = xlbook.Worksheets(7)
    Set xlsheetB = xlbook.Worksheets(8)

End sub
2018-02-26 20:16
start1901
Rank: 1
等 级:新手上路
帖 子:25
专家分:4
注 册:2018-2-26
  得分:4 
回复 楼主 xingming022
确定你有8个sheet么?估计是没有
2018-02-26 22:48
xingming022
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2015-1-26
  得分:0 
回复 2楼 HVB6
我就是想对一个已经打开的EXCEL进行操作,不知怎么编写代码~
2018-02-27 08:54
HVB6
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:276
专家分:416
注 册:2013-10-30
  得分:0 
回复 4楼 xingming022
vb操作工作簿应该是关闭的,这样试试:
Private Sub Command6_Click()
    Set xlApp = CreateObject("excel.application")
    Set xlbook =   xlApp.Workbooks.Open(mypath)
    Set xlsheetA = xlbook.Worksheets(7)
    Set xlsheetB = xlbook.Worksheets(8)
End sub
mypath为您要操作的工作簿路径和其文件名。

[此贴子已经被作者于2018-2-27 10:40编辑过]

2018-02-27 10:37
xingming022
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2015-1-26
  得分:0 
回复 5楼 HVB6
我想对当前任意打开的EXCEL进行操作。而不是指定位置的EXCEL。麻烦您再看下~
2018-02-27 11:33
wds1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:30
帖 子:305
专家分:1661
注 册:2016-3-10
  得分:4 
1、通过xlbook.Worksheets.Count取得sheet数
2、之后通过for循环对全部sheet进行操作。


2018-02-27 12:58
wlrjgzs
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:26
帖 子:198
专家分:1429
注 册:2017-4-10
  得分:4 
2018-02-27 14:30
wds1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:30
帖 子:305
专家分:1661
注 册:2016-3-10
  得分:0 
如果你想用VB创建execl,以下供参考
   Dim NewXls As Excel.Application
   Dim NewBook As Excel.Workbook
   Dim NewSheet As Excel.Worksheet
   
   Set NewXls = CreateObject("Excel.Application") '创建excel应用程序
   NewXls.SheetsInNewWorkbook = 4 '建立4个sheet,可以修改
   Set NewBook = NewXls.Workbooks.Add '创建工作簿
   Set NewSheet = NewBook.Worksheets(2) '选择sheet2
   '自己编写sheet2的单元格的赋值或者属性操作
   Set NewSheet = NewBook.Worksheets(1) '选择sheet1
    NewXls.Workbooks(1).Worksheets(1).Range("a1:g11").Borders.Weight = xlThin '设置边框
   NewXls.Workbooks(1).Worksheets(1).Range("a1:g11").HorizontalAlignment = 3 '设置居中
    NewXls.Workbooks(1).Worksheets(1).Range("a1:g11").ColumnWidth = 10 '设置列宽
    '其他的自己编写sheet1的单元格的赋值或者属性操作

 
2018-02-27 16:56
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:909
专家分:5237
注 册:2015-8-10
  得分:4 
回复 楼主 xingming022
估计是你的表格中没有3张表(删除了)
如果只是对当前表进行操作,直接用activesheet
要不就按照wds1进行遍历,选择对应的表操作
2018-02-27 16:58







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039768 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved