| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1023 人关注过本帖
标题:VB操作Excel的问题
只看楼主 加入收藏
PJPX
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2009-7-27
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:5 
VB操作Excel的问题
在VB中,可以打开指定的EXCEL工作簿,不知道可不可以调用该EXCEL工作簿中存在的VBA模块或者表单吗?还请高手们指点。
搜索更多相关主题的帖子: Excel 
2010-04-14 21:29
qyq
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-4-3
收藏
得分:0 
excel里面有VBA啊!可以在里面编代码!
2010-04-16 21:16
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
下面是一个例子:
假设D盘根目录下有一个XLS文件Tmp.xls,此文件中的Sheet1工作表中有一个自定义的宏TestVB:
程序代码:
Sub TestVB()
  With Sheet1
      .Cells(1, 1) = "中文国际"
      .Cells(2, 1) = "VB论坛"
  End With
End Sub

VB调用此宏的代码如下:
程序代码:
'工程里得引用EXCEL对象,至于对EXCEL对象调用后的关闭及销毁代码就没写了
Private Sub Command1_Click()
       Dim MyExcel     As Excel.Application
       Set MyExcel = CreateObject("Excel.Application")
          MyExcel.Run ("'d:\Tmp.xls'!Sheet1.testVB") '注意里面有两个单引号
          '到这里,VB就完成了对EXCEL中宏的调用,如果要显示结果,加上下面这一句
          MyExcel.Visible = True '这里让XLS文件显示
End Sub


===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-04-17 11:29
PJPX
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2009-7-27
收藏
得分:0 
回复 3楼 不说也罢
首先,感谢你的答复。
其次,我用MYEXCEL.RUN的方法测试了一下,可以打开指定的EXCEL工作簿,但好象运行不了指定的模块或者用户自定义表单。
如果真的实现不了,那我也只能采取打开工作簿,然后利用EXCEL工作表中的Workbook_Open事件来解决了。
2010-04-19 01:25
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:20 
完全可以调用的。包括VBA中窗体类的宏都能调用。这里有个例子,是VB调用EXCEL的宏,你拿去研究吧

VB调用宏.rar (9.59 KB)


===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-04-19 12:25
PJPX
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2009-7-27
收藏
得分:0 
回复 5楼 不说也罢
谢谢楼上的,测试通过。我再对比了一下,第一次测试没通过应该是你在2楼的测试代码中TESTVB少了个()的原因吧。
2010-04-19 16:46
快速回复:VB操作Excel的问题
数据加载中...
 
   



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

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