如何做:打开excel某文件的时候自动运行宏,弹出窗口,可以让人按几个条件选择该文件中某行信息

dayasky 2004-07-23 10:47:21
这个excel中就一个人员表,有几个人员属性的字段,如姓名、岁数、特长等
问题:
1、打开excel的时候自动弹出选择的宏窗口
2、按已经有的字段选择条件,然后将合乎条件的人都取出来
3、可以在合乎条件的人中随机选一个人
呵呵,这个问题好像不复杂,可是我不会,所以对我来说很难

各位大侠,有没有这样的例子?或者指点我一下
在这里回复或社区消息或email:dayasky@163.com都感激不尽
我是一名c#程序员,看得懂vb,如果有例子给我看看应该就能明白了
只是没有做过,现在感觉没有门路

这是表哥叫我帮忙的东西,偶说给做个程序不就好了,可是他不干,说最好用excel的宏实现
唉,难倒我了,大侠们帮个忙吧
第一次来这个块,只能给100分,对不住了


...全文
6642 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dayasky 2004-07-23
  • 打赏
  • 举报
回复
实在不好意思,因为没有用过
我新建一个excel文件,打开它,选择工具、宏、用vb编辑
然后在打开的vba编辑器中点击ThisWorkBook,在打开空的文件中复制你上面的代码
然后点运行的时候,选了AutoExec,就报无效的过程引用和参数的错误
再再指点一下吗?
Tooler 2004-07-23
  • 打赏
  • 举报
回复
Excel里有四个自动宏,其中的宏名是不能改变的。
//自动宏
Option Explicit
Sub AutoExec()
' Adds an item to the Tools menu.
' This procedure runs automatically when the add-in loads.

Dim offCmdBrPp As CommandBarPopup ' This will be set to
' the Tools menu.
Dim offCmdBtn As CommandBarButton ' This will be set to
' the Project command.

' Create an object variable referring to the Tools menu.
Set offCmdBrPp = _
Application.CommandBars("Menu Bar").Controls("Tools")

' If the Address Book Report command already exists, delete it.
On Error Resume Next
offCmdBrPp.Controls("Address Book Report").Delete

' Add a command in the 4th position on the Tools menu.
Set offCmdBtn = _
offCmdBrPp.Controls.Add(Type:=msoControlButton, Before:=4)

' Set properties on the new command.
With offCmdBtn
.Caption = "Address Book Report"
.OnAction = "ListAddresses"
End With
End Sub


Sub AutoExit()
' Deletes an item on the Tools menu.
' This procedure runs automatically when the add-in unloads.

' If the AddressBook Report command exists, delete it.
On Error Resume Next
Application.CommandBars("Menu Bar").Controls _
("Tools").Controls("Address Book Report").Delete

End Sub


Sub ListAddresses()
' This procedure adds Outlook addresses to a new Word document.
' Called by the OnAction property in the AutoExec procedure.

Dim olList As AddressList ' Outlook address book.
Dim olEntry As AddressEntry ' Outlook address item.
Dim appOutl As Outlook.Application
Dim olNmSpc As Outlook.NameSpace
Dim wrdReportPara As Word.Range
Dim intRepeat As Integer

' Set a reference to an Outlook addresss book.
Set appOutl = New Outlook.Application
Set olNmSpc = appOutl.GetNamespace("MAPI")

' If your system doesn't have a PAB installed,
' the solution will end.
On Error GoTo NoPABAvailable
Set olList = olNmSpc.AddressLists("Personal Address Book")

' Open a new blank document.
Documents.Add

' Add and format text.
' Add 5 paragraphs.
For intRepeat = 0 To 4
ActiveDocument.Paragraphs.Add
Next intRepeat

' Set this object to the 4th paragraph.
Set wrdReportPara = ActiveDocument.Paragraphs(4).Range

' Add and format text.
wrdReportPara.InsertBefore Text:="Address Book"
With wrdReportPara.Font
.Name = "arial"
.Size = 12
.Bold = True
.Italic = True
End With

' Select a range, add a paragraph.
Set wrdReportPara = wrdReportPara.Next
Call AddPara(wrdReportPara)

' Add addresses to the active document.
For Each olEntry In olList.AddressEntries
wrdReportPara.InsertBefore olEntry.Name
Call AddPara(wrdReportPara)
wrdReportPara.InsertBefore olEntry.Address
Call AddPara(wrdReportPara)
Call AddPara(wrdReportPara)
Next

' If your system doesn't have a PAB installed,
' the solution will end.
NoPABAvailable:
MsgBox "Personal Address Book is not available." _
vbTab "Shutting down."
End

' Clean up object variables.
Set olList = Nothing
Set olNmSpc = Nothing
Set appOutl = Nothing
Set wrdReportPara = Nothing

End Sub

dayasky 2004-07-23
  • 打赏
  • 举报
回复
现在已经实现的功能是:
1:打开excel文件的时候自动弹出我的用户窗体
Private Sub Workbook_Open()
UserForm1.Show vbModal
End Sub

2和3还没有门路啊
唉,刚学.net的时候还有自带的详细例子看着做一下,这个vba如何按条件搜索excel啊?
大侠请不吝指教
天涯论坛的EXCEL阅读器(用写的,适合上班族用) V1.3C是最新更新的! 以下是原作者V1.3b的介绍: 1、可浏览更多内容,V1.3b可支持以下各版面(共20个版面)的内容:    国际观察、舞文弄墨、娱乐八卦、情感天地    开心乐园、天涯杂谈、时尚资讯、煮酒论史    关天茶舍、影视评论、音乐天地、闲闲书话    旅游休闲、仗剑天涯、经济论坛、莲蓬鬼话    天涯时空、房产观澜、股市论谈、球迷一家,可以说内容更丰富了,不过占用内存也大了,呵呵   2、增加了跳转至某页的功能,无论多高的楼,都可以跳转到任何一页   3、由于版面较多,版面与帖子之间切换不太方便,因此增加了“显示/隐藏”功能,可以根据各自需要,把不常用的版面隐藏起来,这样看帖子会比较方便,具体方法:按“选项”按钮,在弹出的页面,根据里面提示进行操作就行了,非常方便   4、至多可记录100个你曾经浏览过的帖子,可以随时翻看“历史”记录,具体方法:按“历史”按钮,在弹出窗口查找,双击打开即可   5、增加了楼层显示,浏览更方便,分页沙发非你莫属   6、可以自动清除程序运行时产生的临时文件,具体方法:按“Clear”按钮         其他注意事项及使用方法,请参照以下相关说明:      关于 Tianya Browser V1.0   1、 本浏览器根据天涯网站的架构设计,专用于浏览天涯论坛,不支持其他网站和论坛。   2、 不能“发帖”和“回帖”,目前版本只能潜水,主要是为了不让网友担心ID和密码被窃。   3、 免费使用,但禁止各网友之间相互传播,以防止“别有用心”之人添加恶意代码,使用时请注意保管好您个人重要信息。   4、本人不是专业程序员,水平很低,Bug在所难免,欢迎善意的交流。   5、目前仅在WindowsXP SP3下测试通过,但只在几台机器上使用过,不能保证在所有机器上都能运行,如有问题,请回帖说明,本人将进行改进。   6、本程序仅供闲暇之余使用,切不可耽误工作,如果网友使用本程序,有违反其工作单位相关规定的,由此造成的减薪、被炒等后果,本人概不负责。   7、本程序为开放式,不涉及任何版权,但请不要恶意使用,有好的想法请不吝赐教。         使用方法:   1、该程序采用vba设计,所以EXCEL必须开启,相关操作:菜单项 Tools(工具) ->Macro() -> Security(安全),Security level (安全等级)设置成 Low(低),确定后关闭EXCEL窗口,再重新启动EXCEL。   2、进入相应版面点击“刷新”按钮,程序将自动更新该版面内容(耗时取决于你的网速),如果发现内容不全,请再次点击“刷新”按钮。   3、在相应版面上,任意选择想要浏览的帖子的行(任意位置,只要行对应即可),点击“Load Posts”按钮,将自动弹出新页面,并显示该帖子内容(耗时取决于你的网速),如果发现内容不全,请再次点击“刷新”按钮。   4、该程序不能显示图片,如想浏览真实网页和图片,在首页请点击“(首页)" 和 "(窗口)" 按钮,在帖子页请点击"(Browser)"按钮,如果要关闭弹出窗口,请点击”Hide“按钮隐藏窗口,(不要点击右上角的小叉叉,在程序”刷新“的过程点击小叉叉,会有错误产生)。   5、程序运行后会生成一些临时的文件,临时文件存放在Cache文件夹下,文件可以手动删除,但文件夹必须保留,否则会发生路径错误。

5,172

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧