excel 关于宏的问题请高手帮助

我有个EXCEL sheet1表格,里面有好多车间的信息,分别用不同的颜色区分了,我想在表格下边设置按钮,单击按钮相应的车间就显示出来,而其他的不显示,就想用自动筛选那样,但是我不想用筛选,用宏可以实现这个目的吗,请高手指点。我给分
表格样式是这样的
车间 设备名字 型号 管理者...
生产1 11 32 21
生产2 32 23 25
生产1 25 36 68
生产3 25 26 25
..............
每个车间的行都用不同颜色, 下边设置按钮 生产1 单击就会把生产1的所有行的信息显示出来.

我确定的告诉你,是可以的。
宏的功能很强大,可以做任何你想要实现的功能。
好了,我现在就给你解答这个功能 如何使用宏。
1、你讲你现在的这个表单 作为 sheet2 也就是数据源
2、在sheet1 中 建立生产车间工作表
你可以在这个表格中表格布局规划的好些,设置好表格宽度及边框
3、在工具菜单中 ——〉宏 ——〉录制新宏
此时会出现录制宏的工具条,现在电脑开始记录你的操作了
选择sheet2
使用筛选 然后对生产1进行筛选
框选所有生产1 的数据
复制数据
回到sheet1 表格
粘贴数据
4、按工具条 停止录制宏 按钮
你现在已经制作了一个新宏
但目前只能复制生产1的数据到你的表单中
为了使宏 智能化,你需要修改一下宏
点击 宏菜单中的 vba 编辑器
进入vba 编辑器
对宏程序进行修改
Selection.AutoFilter Field:=1, Criteria1:="筛选项目"
这句语句 是 对sheet2 进行修改 你可以把"筛选项目" 替换成变量
用 变量 a
然后之前 用以下句语
if 选择生产1事件 then
a= "生产1"
else 选择生产2事件 then
a= “生产2”
。。。。。
endif
你修改程序之后
保存
然后运行宏
你就可以完成你的功能了
当然完成编程之后 你还要对程序进行调试
好了 你先去试试吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-08
可以,比如用宏代码来执行高级筛选就很轻松可以实现了。因为没有实例,比较难给出详细代码。
=================
Sub aa()
Application.ScreenUpdating = False
Dim x
x = WorksheetFunction.CountA([A:A])
Range("I1") = "车间"
Range("I2") = "生产1"
Range(Cells(1, 1), Cells(x, 4)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("I1:I2"), Unique:=False
Range("I1") = ""
Range("I2") = ""
Application.ScreenUpdating = True
End Sub

以上例子的数据区域是A:D 请理解原理,如何生搬硬套,根本无用。
第2个回答  2009-08-08
把自动筛选的过程录制为宏。设几个按钮,指定到宏。
第3个回答  2009-08-08
可以,但是要给出具体的文件才好给出宏代码
相似回答