VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 832|回复: 9

[求助] 如何使用VB对excel进行基本操作

[复制链接]
发表于 2017-8-7 09:50:31 | 显示全部楼层 |阅读模式
各位VB大神,我最近需要使用VB对一部分EXCEL表进行简单操作,操作的内容是获取当前文件夹下的所有xls文件,对每个文件的第5行进行插入行操作,然后合并插入后的C5与D5单元格以及合并F5和G5单元格,并在表格内空白区域添加2个按钮,按钮实现的功能是对选定单元格进行赋值操作,按钮A实现将选中的所有单元格内容赋值为A,按钮B实现将选中的所有单元格内容赋值为B,最后将该xls文件另存为后缀为xlsx的格式文件。请问通过VB如何实现以及如何制作成可运行程序。如果没有时间提供具体实现方法,请告知我可以从那本书上实现这些操作,谢谢大家。
发表于 2017-8-8 10:39:01 | 显示全部楼层

简单例子(直接复制可用)需要预先准备一个TEXT.XLS文件
Dim objExcel As Object, objBook As Object, objSheet As Object

Set objExcel = CreateObject("Excel.Application") '建立EXCEL对象
objExcel .Visible = True'可见
Set objBook = objExcel.Workbooks.Open("test.xls") '打开表格文件
Set objSheet = objBook.ActiveSheet '返回当前活动工作表

objSheet.rows(5).Insert '在第5行插入一行
objSheet.range("f5:g5").Merge '合并F5G5
objBook.saveas "demo1.xlsx" '保存文件

你看看,完全与python是一样的流程。
如果你使用电子表格中的宏记录,就完全不是一回事了。

评分

参与人数 1人气 +1 收起 理由
lorihuang + 1 热心快肠

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2017-8-7 11:16:14 | 显示全部楼层
当前文件夹所有XLS可以用DIR语句获得,表格插入可以用Insert方法,合并可以用Merge方法,添加按钮不知道怎么弄,如果是要给定一组数值,然后用下拉去选择的话可以用数据——有效性去解决。
使用 Validation 对象
使用 Validation 属性可返回 Validation 对象。下面的示例改变单元格 E5 的数据有效性规则。

Range("e5").Validation _
    .Modify xlValidateList, xlValidAlertStop, "=$A$1A$10"
使用 Add 方法可向区域中添加数据有效性规则,并创建一个新的 Validation 对象。下面的示例给单元格 E5 添加数据有效性规则。

With Range("e5").Validation
    .Add Type:=xlValidateWholeNumber, _
        AlertStyle:=xlValidAlertInformation, _
        Minimum:="5", Maximum:="10"
    .InputTitle = "Integers"
    .ErrorTitle = "Integers"
    .InputMessage = "Enter an integer from five to ten"
    .ErrorMessage = "You must enter a number from five to ten"
End With
关于电子表格的编程参考有现成的电子书,这个是OFFICE编程参考系列的电子书中的一本,格式为CHM,搜索“excel visual basic 参考”即可。里面有详细的对象、属性、方法、例子,这本书完全可以让一个不懂的人迅速掌握电子表格编程技巧。最重要的是完全免费!

评分

参与人数 1人气 +1 收起 理由
lorihuang + 1 很给力

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-7 12:48:49 | 显示全部楼层
vbfans01 发表于 2017-8-7 11:16
当前文件夹所有XLS可以用DIR语句获得,表格插入可以用Insert方法,合并可以用Merge方法,添加按钮不知道怎 ...

还有关于程序的封包呢?书里也有写吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-7 12:55:31 | 显示全部楼层
还有,以上操作我是否能够通过录制宏,然后对录制的语句进行改写从而快速得到程序?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-7 13:06:29 | 显示全部楼层
vbfans01 发表于 2017-8-7 11:16
当前文件夹所有XLS可以用DIR语句获得,表格插入可以用Insert方法,合并可以用Merge方法,添加按钮不知道怎 ...

我已经找到了电子书,但是感觉这个电子书并不适用于我这样完全不懂VB的人使用
回复 支持 反对

使用道具 举报

发表于 2017-8-7 18:46:22 | 显示全部楼层
这个编程资料对所有需要调用EXCEL的语言都有用,你不懂VB的话,如果懂别的语言也可以!
如果所有语言都不懂,推荐你使用按键精灵这样的软件,可以将写好的脚本编译打包exe。这个软件内置了调用电子表格的插件,搜索“按键精灵 电子表格”。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 07:58:07 | 显示全部楼层
vbfans01 发表于 2017-8-7 18:46
这个编程资料对所有需要调用EXCEL的语言都有用,你不懂VB的话,如果懂别的语言也可以!
如果所有语言都不 ...

我懂python,可是python并不适用于这样调用。。。其实我要的需求已经在python里面做出来了,但是,把python脚本打包后原来100行左右的程序结果打包成了个近100M的文件,非常累赘,所以我想到了VB,但是VB十年前学的,后来一直没用过,现在连最基础的东西都忘了,所以才来求助
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 15:23:29 | 显示全部楼层
本帖最后由 lorihuang 于 2017-8-8 15:24 编辑
vbfans01 发表于 2017-8-8 10:39
简单例子(直接复制可用)需要预先准备一个TEXT.XLS文件
Dim objExcel As Object, objBook As Object, o ...


哇!你真的帮了我大忙了!多问一点点。。。假定我有了这个VB的exe,把这个exe文件放入到需要批处理的文件夹内,那么我希望的是:1、通过脚本获取脚本所在当前文件夹下所有xls为后缀的文件名;2、循环处理每个文件,并保存文件;3、在此脚本写好以后如何打包出exe?至于按钮部分,我再查查资料好了
回复 支持 反对

使用道具 举报

发表于 2017-8-8 19:59:05 | 显示全部楼层
本帖最后由 vbfans01 于 2017-8-8 20:10 编辑

你说的这个功能很简单,基本的功能语句全部给你写出来了,剩下的自己找找关于VB的操作简介,然后修改、调试一下代码就可以完成了。
VB编译exe的方法,在菜单中点击“文件”——》“生成exe”即可!

' 显示指定目录下的文件名称。
Dim MyPath As String, MyName As String
MyPath = App.Path  & "\"  ' 指定路径为当前脚本目录。
MyName = Dir(MyPath, vbNormal) ' 找寻第一项。
Do While MyName <> "" ' 开始循环。
    Debug.Print MyName ' 将其名称显示出来。
如果MyName中的扩展名是XLS则调用表格处理函数(请自己整理一下这个函数)
    MyName = Dir ' 查找下一个
Loop

SUB TEST(FilePath as string)
Dim objExcel As Object, objBook As Object, objSheet As Object

Set objExcel = CreateObject("Excel.Application") '建立EXCEL对象
objExcel .Visible = True'可见
Set objBook = objExcel.Workbooks.Open(FilePath) '打开表格文件
Set objSheet = objBook.ActiveSheet '返回当前活动工作表

objSheet.rows(5).Insert '在第5行插入一行
objSheet.range("f5:g5").Merge '合并F5G5
objBook.saveas "demo1.xlsx" '保存文件
end sub
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2017-10-23 17:32

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表