如何获得Excel中VBA按钮所在Cell位置?

lwd2k 2006-07-11 03:53:19
!
...全文
699 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaOBS 2006-07-11
  • 打赏
  • 举报
回复
'计算Cmd1所在的坐标
Function GetRC(ByVal Cmd As CommandButton)
Dim i, rX, cY As Integer
For i = 1 To 255
If Cells(1, i).Left < Cmd.Left And Cells(1, i + 1).Left > Cmd.Left Then
cY = i: Exit For
End If
Next
For i = 1 To 65535
If Cells(i, 1).Top < Cmd.Top And Cells(i + 1, 1).Top > Cmd.Top Then
rX = i: Exit For
End If
Next
GetRC = "Row:" & rX & ";Column:" & cY
End Function


使用时:MsgBox GetRC(CommandButton1)就可以了... ...
risa_meng 2006-07-11
  • 打赏
  • 举报
回复
站这等着
自动生成VBA窗体菜单 '*************************** '* 菜单类 * '*************************** Option Explicit Private WithEvents MenuBar_MenuItem As MSForms.Label '菜单项 Private WithEvents WorkForm As MSForms.UserForm '工作窗口 Private WithEvents MenuBar As MSForms.Image '菜单栏 Private BackMenu_BackGroud As MSForms.Image '菜单背景图片 Private BackMenu_Caption As MSForms.Label '菜单标题标签 Private Const DISTANCE As Integer = 5 '菜单与左边框距离 Private Const MENUTOP As Integer = 2 '菜单项顶点Y轴位置 Private Const MENUHEIGHT As Integer = 14 '菜单项高度 Private intIndex As Integer '索引变量 Private sAction As String '宏名称变量 Private Property Let Index(N As Byte) '指定索引属性 intIndex = N End Property Private Property Get Index() As Byte '获得陇望蜀索引属性 Index = intIndex End Property Private Property Let OnAction(sAct As String) '行为属性 sAction = sAct End Property Private Property Get OnAction() As String OnAction = sAction End Property Public Sub AddMenu(wform As MSForms.UserForm, sCaption As String, sAction As String, Optional Acc As String = vbNullString) Dim MenuLeft As Single, MenuWidth As Single '由两个标签和一个图形控件组成一个主菜单项 MenuCount = MenuCount + 1 '主菜单项总数加1 Index = MenuCount '设置索引 Set WorkForm = wform With WorkForm Set MenuBar = .FormMenuBar Set BackMenu_Caption = .Controls.Add("forms.label.1") '添加一个标签,显示菜单标题 With BackMenu_Caption .Accelerator = Acc .AutoSize = True .BackStyle = fmBackStyleTransparent .Caption = sCaption .Font = "宋体" .Font.Size = 9 .Name = "BackMenu_Caption" & MenuCount .TextAlign = fmTextAlignCenter .Top = MENUTOP + 3 .WordWrap = False .Visible = True End With If MenuCount = 1 Then MenuLeft = DISTANCE Else With .Controls("BackMenu_Caption" & MenuCount - 1) MenuLeft = .Left + .Width End With End If MenuWidth = BackMenu_Caption.Width + 10 Set BackMenu_BackGroud = .Controls.Add("forms.image.1") '添加一个image,作为背景图片 With BackMenu_BackGroud .Name = "BackMenu_BackGroud" & MenuCount .BorderStyle = fmBorderStyleNone .Move MenuLeft, MENUTOP, MenuWidth, MENUHEIGHT .BackStyle = fmBackStyleTransparent .PictureSizeMode = fmPictureSizeModeStretch BackMenu_Caption.AutoSize = False BackMenu_Caption.Left = .Left BackMenu_Caption.Width = .Width End With BackMenu_Caption.ZOrder '将标签置前 Set MenuBar_MenuItem = .Controls.Add("forms.label.1") '添加一个Label,用于触发事件 With MenuBar_MenuItem .Name = "MenuBar_MenuItem" & MenuCount .BorderStyle = fmBorderStyleNone .BackStyle = fmBackStyleTransparent With BackMenu_BackGroud MenuBar_MenuItem.Move .Left, .Top, .Width, .Height End With End With End With OnAction = sAction End Sub Private Sub MenuBar_MenuItem_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 1 Then bMenuSelected = True: Menu_Select End Sub Private Sub MenuBar_Click() UnSelectLastMenu bMenuSelected = False End Sub Private Sub MenuBar_MenuItem_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) UnSelectLastMenu Call Menu_Select End Sub Private Sub MenuBar_MouseMove1(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Not bMenuSelected Then UnSelectLastMenu End Sub Private Sub WorkForm_Click() '窗体单击时 UnSelectLastMenu bMenuSelected = False End Sub Private Sub WorkForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Not bMenuSelected Then UnSelectLastMenu '窗体 End Sub Private Sub Menu_Select() '选择菜单 On Error Resume Next Dim Pt_Menu_RightBottom As POINTAPI, Pt_Menu_LeftTop As POINTAPI With WorkForm UnSelectLastMenu Set LastSelect_Menu = BackMenu_BackGroud With BackMenu_BackGroud .BorderStyle = fmBorderStyleSingle .BorderColor = RGB(0, 0, 128) .BackStyle = fmBackStyleOpaque If bMenuSelected = False Then WorkForm.Controls("BackMenu_BackGroud" & Index).BackColor = &HFFC0C0 Else WorkForm.Controls("BackMenu_BackGroud" & Index).BackColor = &HE0E0E0 pt.X = MenuBar_MenuItem.Left * 1.33 pt.Y = (MenuBar_MenuItem.Top + MenuBar_MenuItem.Height) * 1.33 + 3 ClientToScreen hForm, pt If OnAction "" Then Application.Run OnAction End If End If End With End With End Sub Private Sub UnSelectLastMenu() '取消上次选择 If Not LastSelect_Menu Is Nothing Then With LastSelect_Menu .Picture = LoadPicture() .BackStyle = fmBackStyleTransparent .BorderStyle = fmBorderStyleNone End With End If End Sub '********本模块结束********** '*************************** '* 菜单执行模块 * '*************************** Public Type POINTAPI X As Long Y As Long End Type Public Declare Function FindWindow Lib "user32.dll" Alias"FindWindowA"(ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function ClientToScreen Lib"user32"(ByVal hwnd As Long, lpPoint As POINTAPI) As Long Public Popup_Menu As CommandBar '指定弹出式菜单 Public LastSelect_Menu As MSForms.Image '最后选择的菜单 Public MenuCount As Integer '子菜单数量 Public hForm As Long '窗口句柄 Public intLevel As Integer '级别标识,用于设置Radio菜单(游戏菜单:初级,级,高级) Public bAbortEnabled As Boolean '标识放弃菜单项是否可用 Public bItemCheck As Boolean '标识音效菜单是否CheckOn Public bMenuSelected As Boolean '标识菜单是否点击 Public pt As POINTAPI '定义点 Public faceid As Integer '图标ID Public faceidselect As Integer '选择的图标 Public fistid As Integer '第一个图标号 Public lastid As Integer '最后一个图标号 Public selectrow,selectcol as integer Public Mcro(50) AS String SUB 文件() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "打开 ", "", False, True,33,"" AddCustomCommandBarPopup1 "新建 ", "BB", False, True,18,"" AddCustomCommandBarPopup2 ("另存为 ") Set cmb = Application.CommandBars("CELL").Controls("另存为 ") AddCustomCommandBarPopup3 cmb, "OFFICE 97-2003文件 ", "DD", False, True, 3, "" Set cmb = Application.CommandBars("CELL").Controls("另存为 ") AddCustomCommandBarPopup4 cmb, "OFFICE 2007工作表 " Set cmb = Application.CommandBars("CELL").Controls("另存为 ").Controls("OFFICE 2007工作表 ") AddCustomCommandBarPopup3 cmb, "office 2007启用宏的工作表 ", "FF", False, True, 0, "" Set cmb = Application.CommandBars("CELL").Controls("另存为 ").Controls("OFFICE 2007工作表 ") AddCustomCommandBarPopup3 cmb, "OFFICE 2007工作表 ", "GG", False, True, 253, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 公式() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "文本 ", "WB", False, True,7,"" AddCustomCommandBarPopup2 ("名称 ") Set cmb = Application.CommandBars("CELL").Controls("名称 ") AddCustomCommandBarPopup3 cmb, "定义 ", "DY", False, True, 0, "" Set cmb = Application.CommandBars("CELL").Controls("名称 ") AddCustomCommandBarPopup4 cmb, "单元格 " Set cmb = Application.CommandBars("CELL").Controls("名称 ").Controls("单元格 ") AddCustomCommandBarPopup3 cmb, "合并 ", "HB", False, True, 592, "" Set cmb = Application.CommandBars("CELL").Controls("名称 ").Controls("单元格 ") AddCustomCommandBarPopup3 cmb, "从属 ", "CS", False, True, 564, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 开发工具() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "插入 ", "CR", False, True,548,"" AddCustomCommandBarPopup1 "模式 ", "MS", False, True,590,"" AddCustomCommandBarPopup2 ("宏 ") Set cmb = Application.CommandBars("CELL").Controls("宏 ") AddCustomCommandBarPopup3 cmb, "录制宏 ", "LZH", False, True, 205, "" Set cmb = Application.CommandBars("CELL").Controls("宏 ") AddCustomCommandBarPopup3 cmb, "安全性 ", "AQX", False, True, 279, "" Set cmb = Application.CommandBars("CELL").Controls("宏 ") AddCustomCommandBarPopup3 cmb, "查看代码 ", "CKDM", False, True, 289, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 窗口() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "并列比较 ", "BLBJ", False, True,250,"" AddCustomCommandBarPopup1 "冻结 ", "DJ", False, True,288,"" AddCustomCommandBarPopup1 "隐藏 ", "YC", False, True,237,"" AddCustomCommandBarPopup1 "拆分 ", "CF", False, True,292,"" AddCustomCommandBarPopup1 "取消冻结 ", "QXDJ", False, True,232,"" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 工具() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "拼写检查 ", "PXJC", False, True,246,"" AddCustomCommandBarPopup2 ("保护 ") Set cmb = Application.CommandBars("CELL").Controls("保护 ") AddCustomCommandBarPopup3 cmb, "保护工作表 ", "BHGZB", False, True, 277, "" Set cmb = Application.CommandBars("CELL").Controls("保护 ") AddCustomCommandBarPopup3 cmb, "保护工作薄 ", "BHGZBB", False, True, 312, "" Set cmb = Application.CommandBars("CELL").Controls("保护 ") AddCustomCommandBarPopup3 cmb, "工作表菜单栏 ", "gzbcdl", False, True, 142, "" Set cmb = Application.CommandBars("CELL").Controls("保护 ") AddCustomCommandBarPopup3 cmb, "图表菜单栏 ", "tbgjl", False, True, 164, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 常用() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "格式 ", "gs", False, True,108,"" AddCustomCommandBarPopup1 "数据透视表 ", "sjtsb", False, True,125,"" AddCustomCommandBarPopup1 "图表 ", "tb", False, True,127,"" AddCustomCommandBarPopup1 "审阅 ", "sy", False, True,124,"" AddCustomCommandBarPopup1 "窗体 ", "ct", False, True,128,"" AddCustomCommandBarPopup1 "停止录制 ", "tzlz", False, True,185,"" AddCustomCommandBarPopup2 ("外部数据 ") Set cmb = Application.CommandBars("CELL").Controls("外部数据 ") AddCustomCommandBarPopup3 cmb, "公式审核 ", "gssh", False, True, 129, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ") AddCustomCommandBarPopup3 cmb, "全屏显示 ", "qpxs", False, True, 130, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ") AddCustomCommandBarPopup3 cmb, "循环引用 ", "xhye", False, True, 132, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ") AddCustomCommandBarPopup4 cmb, "VisualBasic " Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "Web ", "web", False, True, 173, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "控件工具箱 ", "kjgjx", False, True, 174, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "退出设计模式 ", "tcsjms", False, True, 162, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "刷新 ", "sx", False, True, 165, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "监视窗口 ", "jsck", False, True, 168, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "数据透视表字段列表 ", "sjtsbzdb", False, True, 170, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "边框 ", "bk", False, True, 178, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "保护 ", "bh", False, True, 160, "" Set cmb = Application.CommandBars("CELL").Controls("外部数据 ").Controls("VisualBasic ") AddCustomCommandBarPopup3 cmb, "文本到语音 ", "wbdyy", False, True, 164, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 列表() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "并排比较 ", "bpbj1", False, True,180,"" AddCustomCommandBarPopup1 "绘图 ", "bpbj2", False, True,182,"" AddCustomCommandBarPopup1 "数据透视图菜单 ", "bpbj3", False, True,184,"" AddCustomCommandBarPopup2 ("工作簿标签 ") AddCustomCommandBarPopup2 ("单元格 ") Set cmb = Application.CommandBars("CELL").Controls("单元格 ") AddCustomCommandBarPopup3 cmb, "列 ", "bpbj6", False, True, 190, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ") AddCustomCommandBarPopup3 cmb, "行 ", "bpbj7", False, True, 192, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ") AddCustomCommandBarPopup3 cmb, "单元格 ", "bpbj8", False, True, 194, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ") AddCustomCommandBarPopup3 cmb, "柱形图 ", "bpbj9", False, True, 196, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ") AddCustomCommandBarPopup3 cmb, "行 ", "bpbj10", False, True, 198, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ") AddCustomCommandBarPopup4 cmb, "工作表 " Set cmb = Application.CommandBars("CELL").Controls("单元格 ").Controls("工作表 ") AddCustomCommandBarPopup3 cmb, "XLM 单元格 ", "bpbj12", False, True, 202, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ").Controls("工作表 ") AddCustomCommandBarPopup3 cmb, "文档 ", "bpbj13", False, True, 204, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ").Controls("工作表 ") AddCustomCommandBarPopup3 cmb, "桌面 ", "bpbj14", False, True, 206, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ").Controls("工作表 ") AddCustomCommandBarPopup3 cmb, "非默认拖放 ", "bpbj15", False, True, 208, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ").Controls("工作表 ") AddCustomCommandBarPopup3 cmb, "自动填充 ", "bpbj16", False, True, 210, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ").Controls("工作表 ") AddCustomCommandBarPopup3 cmb, "按钮 ", "bpbj17", False, True, 212, "" Set cmb = Application.CommandBars("CELL").Controls("单元格 ").Controls("工作表 ") AddCustomCommandBarPopup3 cmb, "对话框 ", "bpbj18", False, True, 214, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 序列() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "图形区 ", "bpbj20", False, True,218,"" AddCustomCommandBarPopup1 "基底和墙纸 ", "bpbj21", False, True,220,"" AddCustomCommandBarPopup1 "趋势线 ", "bpbj22", False, True,222,"" AddCustomCommandBarPopup1 "图表 ", "bpbj23", False, True,224,"" AddCustomCommandBarPopup1 "设置数据系列格式 ", "bpbj24", False, True,226,"" AddCustomCommandBarPopup2 ("设置数据轴格式 ") Set cmb = Application.CommandBars("CELL").Controls("设置数据轴格式 ") AddCustomCommandBarPopup3 cmb, "设置图例项格式 ", "bpbj26", False, True, 230, "" Set cmb = Application.CommandBars("CELL").Controls("设置数据轴格式 ") AddCustomCommandBarPopup3 cmb, "编辑栏 ", "bpbj27", False, True, 232, "" Set cmb = Application.CommandBars("CELL").Controls("设置数据轴格式 ") AddCustomCommandBarPopup3 cmb, "数据透视表上下文菜单 ", "bpbj28", False, True, 234, "" Set cmb = Application.CommandBars("CELL").Controls("设置数据轴格式 ") AddCustomCommandBarPopup3 cmb, "查询 ", "bpbj29", False, True, 236, "" Set cmb = Application.CommandBars("CELL").Controls("设置数据轴格式 ") AddCustomCommandBarPopup3 cmb, "查询布局 ", "bpbj30", False, True, 238, "" Set cmb = Application.CommandBars("CELL").Controls("设置数据轴格式 ") AddCustomCommandBarPopup4 cmb, "自动计算 " Set cmb = Application.CommandBars("CELL").Controls("设置数据轴格式 ").Controls("自动计算 ") AddCustomCommandBarPopup3 cmb, "对象/图形区 ", "bpbj32", False, True, 242, "" Set cmb = Application.CommandBars("CELL").Controls("设置数据轴格式 ").Controls("自动计算 ") AddCustomCommandBarPopup3 cmb, "标题栏(图表) ", "bpbj33", False, True, 244, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 框架() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "数据透视图快捷菜单 ", "bpbj35", False, True,248,"" AddCustomCommandBarPopup1 "拼音信息 ", "bpbj36", False, True,250,"" AddCustomCommandBarPopup1 "自动合计 ", "bpbj37", False, True,252,"" AddCustomCommandBarPopup1 "选择性粘贴下拉框 ", "bpbj38", False, True,254,"" AddCustomCommandBarPopup2 ("查找格式 ") Set cmb = Application.CommandBars("CELL").Controls("查找格式 ") AddCustomCommandBarPopup3 cmb, "替换格式 ", "bpbj40", False, True, 258, "" Set cmb = Application.CommandBars("CELL").Controls("查找格式 ") AddCustomCommandBarPopup3 cmb, "列表区域快捷菜单 ", "bpbj41", False, True, 260, "" Set cmb = Application.CommandBars("CELL").Controls("查找格式 ") AddCustomCommandBarPopup3 cmb, "列表区域布局快捷菜单 ", "bpbj42", False, True, 262, "" Set cmb = Application.CommandBars("CELL").Controls("查找格式 ") AddCustomCommandBarPopup3 cmb, "XML 区域快捷菜单 ", "bpbj43", False, True, 264, "" Set cmb = Application.CommandBars("CELL").Controls("查找格式 ") AddCustomCommandBarPopup3 cmb, "列表区域布局快捷菜单 ", "bpbj44", False, True, 266, "" Set cmb = Application.CommandBars("CELL").Controls("查找格式 ") AddCustomCommandBarPopup3 cmb, "艺术字 ", "bpbj45", False, True, 268, "" AddCustomCommandBarPopup2 ("图片 ") Set cmb = Application.CommandBars("CELL").Controls("图片 ") AddCustomCommandBarPopup3 cmb, "阴影设置 ", "bpbj47", False, True, 272, "" AddCustomCommandBarPopup2 ("三维设置 ") Set cmb = Application.CommandBars("CELL").Controls("三维设置 ") AddCustomCommandBarPopup3 cmb, "绘图画布 ", "bpbj49", False, True, 276, "" Set cmb = Application.CommandBars("CELL").Controls("三维设置 ") AddCustomCommandBarPopup3 cmb, "组织结构图 ", "bpbj50", False, True, 278, "" Set cmb = Application.CommandBars("CELL").Controls("三维设置 ") AddCustomCommandBarPopup3 cmb, "图示 ", "bpbj51", False, True, 280, "" Set cmb = Application.CommandBars("CELL").Controls("三维设置 ") AddCustomCommandBarPopup3 cmb, "墨迹绘图与书写 ", "bpbj52", False, True, 282, "" Set cmb = Application.CommandBars("CELL").Controls("三维设置 ") AddCustomCommandBarPopup3 cmb, "墨迹注释 ", "bpbj53", False, True, 284, "" AddCustomCommandBarPopup2 ("边框 ") Set cmb = Application.CommandBars("CELL").Controls("边框 ") AddCustomCommandBarPopup3 cmb, "边框 ", "bpbj55", False, True, 288, "" Set cmb = Application.CommandBars("CELL").Controls("边框 ") AddCustomCommandBarPopup4 cmb, "绘图边框 " Set cmb = Application.CommandBars("CELL").Controls("边框 ").Controls("绘图边框 ") AddCustomCommandBarPopup3 cmb, "图表类型 ", "bpbj57", False, True, 292, "" Set cmb = Application.CommandBars("CELL").Controls("边框 ").Controls("绘图边框 ") AddCustomCommandBarPopup3 cmb, "图案 ", "bpbj58", False, True, 294, "" Set cmb = Application.CommandBars("CELL").Controls("边框 ").Controls("绘图边框 ") AddCustomCommandBarPopup3 cmb, "字体颜色 ", "bpbj59", False, True, 296, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 填充颜色() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "线条颜色 ", "bpbj61", False, True,300,"" AddCustomCommandBarPopup2 ("绘图与书写笔 ") Set cmb = Application.CommandBars("CELL").Controls("绘图与书写笔 ") AddCustomCommandBarPopup3 cmb, "批注笔 ", "bpbj63", False, True, 304, "" Set cmb = Application.CommandBars("CELL").Controls("绘图与书写笔 ") AddCustomCommandBarPopup3 cmb, "绘图和书写笔 ", "bpbj64", False, True, 306, "" Set cmb = Application.CommandBars("CELL").Controls("绘图与书写笔 ") AddCustomCommandBarPopup3 cmb, "注释笔 ", "bpbj65", False, True, 308, "" Set cmb = Application.CommandBars("CELL").Controls("绘图与书写笔 ") AddCustomCommandBarPopup3 cmb, "叠放次序 ", "bpbj66", False, True, 310, "" Set cmb = Application.CommandBars("CELL").Controls("绘图与书写笔 ") AddCustomCommandBarPopup3 cmb, "微移 ", "bpbj67", False, True, 312, "" Set cmb = Application.CommandBars("CELL").Controls("绘图与书写笔 ") AddCustomCommandBarPopup3 cmb, "对齐或分布 ", "bpbj68", False, True, 314, "" AddCustomCommandBarPopup2 ("旋转或翻转 ") Set cmb = Application.CommandBars("CELL").Controls("旋转或翻转 ") AddCustomCommandBarPopup3 cmb, "直线 ", "bpbj70", False, True, 318, "" Set cmb = Application.CommandBars("CELL").Controls("旋转或翻转 ") AddCustomCommandBarPopup4 cmb, "连接符 " Set cmb = Application.CommandBars("CELL").Controls("旋转或翻转 ").Controls("连接符 ") AddCustomCommandBarPopup3 cmb, "自选图形 ", "bpbj72", False, True, 322, "" Set cmb = Application.CommandBars("CELL").Controls("旋转或翻转 ").Controls("连接符 ") AddCustomCommandBarPopup3 cmb, "标注 ", "bpbj73", False, True, 324, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 流程图() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "箭头总汇 ", "bpbj75", False, True,328,"" AddCustomCommandBarPopup1 "星与旗帜 ", "bpbj76", False, True,330,"" AddCustomCommandBarPopup1 "基本形状 ", "bpbj77", False, True,332,"" AddCustomCommandBarPopup1 "插入形状 ", "bpbj78", False, True,334,"" AddCustomCommandBarPopup2 ("形状 ") Set cmb = Application.CommandBars("CELL").Controls("形状 ") AddCustomCommandBarPopup3 cmb, "非活动图表 ", "bpbj80", False, True, 338, "" Set cmb = Application.CommandBars("CELL").Controls("形状 ") AddCustomCommandBarPopup3 cmb, "Excel 控件 ", "bpbj81", False, True, 340, "" AddCustomCommandBarPopup1 "曲线 ", "bpbj82", False, True,342,"" AddCustomCommandBarPopup1 "曲线结点 ", "bpbj83", False, True,344,"" AddCustomCommandBarPopup1 "曲线段 ", "bpbj84", False, True,346,"" AddCustomCommandBarPopup1 "图片上下文菜单 ", "bpbj85", False, True,348,"" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB OLE对象() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "ActiveX 控件 ", "bpbj87", False, True,352,"" AddCustomCommandBarPopup1 "艺术字上下文菜单 ", "bpbj88", False, True,354,"" AddCustomCommandBarPopup1 "旋转方式 ", "bpbj89", False, True,356,"" AddCustomCommandBarPopup1 "连接符 ", "bpbj90", False, True,358,"" AddCustomCommandBarPopup1 "脚本标记快捷菜单 ", "bpbj91", False, True,360,"" AddCustomCommandBarPopup1 "Canvas Popup ", "bpbj92", False, True,362,"" AddCustomCommandBarPopup1 "Organization Chart Popup ", "bpbj93", False, True,364,"" AddCustomCommandBarPopup2 ("图表 ") Set cmb = Application.CommandBars("CELL").Controls("图表 ") AddCustomCommandBarPopup3 cmb, "选择 ", "bpbj95", False, True, 368, "" Set cmb = Application.CommandBars("CELL").Controls("图表 ") AddCustomCommandBarPopup4 cmb, "版式 " Set cmb = Application.CommandBars("CELL").Controls("图表 ").Controls("版式 ") AddCustomCommandBarPopup3 cmb, "符号栏 ", "bpbj97", False, True, 372, "" Set cmb = Application.CommandBars("CELL").Controls("图表 ").Controls("版式 ") AddCustomCommandBarPopup3 cmb, "任务窗格 ", "bpbj98", False, True, 374, "" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 添加命令() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "内置菜单 ", "bpbj100", False, True,378,"" AddCustomCommandBarPopup1 "剪贴板 ", "bpbj101", False, True,380,"" AddCustomCommandBarPopup1 "信封 ", "bpbj102", False, True,382,"" AddCustomCommandBarPopup1 "联机会议 ", "bpbj103", False, True,384,"" AddCustomCommandBarPopup1 "SnagIt ", "bpbj104", False, True,386,"" Popup_Menu.ShowPopup pt.X, pt.Y END SUB SUB 关于() Clear_menu '清除弹出菜单上菜单项 Dim cmb As CommandBarControl AddCustomCommandBarPopup1 "我的VBA ", "WDVBA", False, True,400,"" AddCustomCommandBarPopup1 "帮助 ", "BZ", False, True,402,"" Popup_Menu.ShowPopup pt.X, pt.Y END SUB Public Sub ClearBar() '清除Cell弹出式菜单菜单项 Dim ctr As CommandBarControl With Popup_Menu .Enabled = True For Each ctr In .Controls ctr.Delete Next End With End Sub Sub RemoveCustomMenu() '恢复系统菜单的各弹出菜单 Application.CommandBars("CELL").Reset End Sub Sub clear_menu() Dim cmb As Object For Each cmb In Application.CommandBars("cell").Controls Application.CommandBars("cell").Controls(cmb.Caption).Delete Next End Sub Sub AddCustomCommandBarPopup1(Caption As String, Macro As String, NewGroup As Boolean, Enable As Boolean, FId As Integer, ShortT As String) '添加一级菜单选项 Dim cbb As CommandBarButton Set cbb = Application.CommandBars("CELL").Controls.Add(msoControlButton) cbb.Caption = Caption If FId > 0 Then cbb.faceid = FId If ShortT "" Then cbb.ShortcutText = ShortT cbb.OnAction = Macro cbb.BeginGroup = NewGroup cbb.Enabled = Enable End Sub Function AddCustomCommandBarPopup2(Caption As String) As CommandBarControl '添加子菜单项 Dim cmb As CommandBarControl Set cmb = Application.CommandBars("CELL").Controls.Add(msoControlPopup) cmb.Caption = Caption cmb.Visible = True Set AddCustomCommandBarPopup2 = cmb End Function Sub AddCustomCommandBarPopup3(cmb As Object, Caption As String, Macro As String, NewGroup As Boolean, Enable As Boolean, FId As Integer, ShortT As String) '添加一级菜单选项 Dim cbc As CommandBarButton Set cbc = cmb.Controls.Add(msoControlButton) cbc.Caption = Caption If FId > 0 Then cbc.faceid = FId If ShortT "" Then cbc.ShortcutText = ShortT cbc.OnAction = Macro cbc.BeginGroup = NewGroup cbc.Enabled = Enable End Sub Function AddCustomCommandBarPopup4(cmd As CommandBarControl, Caption As String) As CommandBarControl '添加子菜单项 Dim cme As CommandBarControl Set cme = cmd.Controls.Add(msoControlPopup) cme.Caption = Caption cme.Visible = True Set AddCustomCommandBarPopup4 = cme End Function '********本模块结束********** '*************************** '* 窗口模块 * '*************************** Private menu(1 To 50) As New Menu_Class '定义50个cMenu菜单类型 Private Sub UserForm_Initialize() hForm = FindWindow(vbNullString, Me.Caption) '程序需要用到窗口句柄,先获得它 MenuCount = 0 Set Popup_Menu = Application.CommandBars("Cell") '程序需指定一个弹出式菜单,我们指定为单元格右键菜单,您可另外指定一个弹出式菜单,请注意,是弹出式菜单 Dim bar As Control Set bar = Me.Controls.Add("Forms.image.1", "IM1", Visible) With bar .Visible = True .Left = -100 .Top = 0 .Height = 20 .Width = 20 .BackColor = &HFFC0C0 .BorderStyle = 0 End With '*************** Set bar = Me.Controls.Add("Forms.image.1", "IM2", Visible) With bar .Visible = True .Left = -100 .Top = 0 .Height = 20 .Width = 20 .BackColor = &HFFC0C0 .BorderStyle = 0 End With '*************** Set bar = Me.Controls.Add("Forms.image.1", "FormMenuBar", Visible) With bar .Visible = True .Left = -1 .Top = -1 .Height = 20 .Width = 2000 .BackColor = &HFFC0C0 .BorderStyle = 0 End With menu(1).AddMenu Me,"文件","文件","" menu(2).AddMenu Me,"公式","公式","" menu(3).AddMenu Me,"开发工具","开发工具","" menu(4).AddMenu Me,"窗口","窗口","" menu(5).AddMenu Me,"工具","工具","" menu(6).AddMenu Me,"常用","常用","" menu(7).AddMenu Me,"列表","列表","" menu(8).AddMenu Me,"序列","序列","" menu(9).AddMenu Me,"框架","框架","" menu(10).AddMenu Me,"填充颜色","填充颜色","" menu(11).AddMenu Me,"流程图","流程图","" menu(12).AddMenu Me,"OLE对象","OLE对象","" menu(13).AddMenu Me,"添加命令","添加命令","" menu(14).AddMenu Me,"关于","关于","" end sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Dim i As Integer For i = LBound(menu) To UBound(menu) Set menu(i) = Nothing Next Popup_Menu.Enabled = True Popup_Menu.Reset end sub '********本模块结束**********
不需Excel也可讀寫xls檔的Delphi控件 用来读取Excel,Access的控件 读写任何单元值 数字型、字符型、布尔型以及错误型。但是你了解日期和时间型单元吗?在Excel没有这样的单元。Excel是和Delphi一样的方式来存储日期和时间的,即浮点型。那是什么制造了日期或时间值啦,是格式化。 完全支持公式。你可以使用和Excel一样的函数,也支持对外部工作簿引用的公式,你甚至可以从外部引用读取结果。 与操作Delphi的TStringGrid一样的方式操作单元格,或则通过给单元格命名,比如:”D7” 根据单元格的规则以字符串格式读取单元值 根据你的需求格式化单元 格式化很简单。通过获取单元格,你就可以操作单元的格式属性。例如:XLSReadWriteII.Sheet[n].Cell[Col,Row].FontSize := 12; 你也可以对域进行格式化,比如设置边框。 支持所有的Excel格式选项 合并单元格 操作所有的打印选项 选择页面大小,设置边距 设置标题和页脚,包括格式码。 定义打印区域 设置分页符 XLSReadWriteII完全支持Unicode 所有的字符型都是宽字符型。你完全不必担心非英语字符。 控件 你可以插入控件以及定义他们的源和目的单元 绘图 插入所有种类的绘图,从简单的线条到AutoShapes 多行文本和文本框 创建和编辑文本框以及多行文本 图表 创建和Excel一样选项的图表 复制/移动/删除 可以以Excel一样的行为复制、移动和删除单元 行列也可以像单元一样复制和移动 支持工作簿之间的复制和移动 可以复制整个工作簿 使用命名的域/单元 你可以在你想要的任何地方命名 通过命名访问单元格,例如:XLS.NameAsFloat['MyCell'] := 202.5; 支持指定、内置的名称 支持所有超链接类型 网页和E-mail地址 本地文件 服务器文件 工作薄引用 加密文档 你可以读写加密文件。条件是你需要知道文件的密码。 计算 可计算单元以及整个工作薄 计算引擎将依据单元进行计算。 可读取引用的外部工作薄。这通过一个特殊的快速查询程序进行执行 Rich Text单元 为了轻松地创建多字体格式的单元,单元可以以RTF格式读写 VBA宏 可以读写文件的宏,使用XLSReadWriteII可以为控件比如:按钮、组合框等添加宏 导入及导出 从下列导入数据… Open Office Calc文档 CSV文件以及其他可以自动识别分隔符、小数分隔符和文本引用字符的文本文件 HTML表格(标签) 数据库 导出数据为… CSV文件 HTML文件 其他 自动过滤 单元验证 有条件的格式 合并单元 PaintCell方法:将单元内容渲染到TCanvas对象的 XLSReadWriteII包还包含下列组件: 从任何数据库导入数据到工作薄 工作薄导出为HTML文件
光盘的内容 ------------------------------------------------------------------------ 下面的部分提供光盘各种资源的详细信息。 本书的实例文件 本书使用的文件是按章节组织的,除了几个例外,所有文件都是带有以下扩展名的Excel 2007文件: * ? XLSX:Excel工作簿文件 * ? XLSM:包含VBVA宏的Excel工作簿文件 当打开XLSM文件时,Excel可能会显示安全警告并告诉您已禁用宏。要启用宏,单击 “安全警告”面板的“选项”按钮然后选择“启用此内容”选项。 由于光盘上的文件是来自受信任源,您可以将这些文件复制到您的电脑上,然后指定一个文件夹作为受信任位置,要想这样,执行以下操作: 1. 打开一个“资源管理器”窗口,选择包含附带光盘的光驱。 2. 右击带有实例的根文件夹相应的文件夹,并从快捷菜单选择“复制”命令。 3. 激活电脑要复制文件的目标文件夹,右击该目录并从快捷菜单选择“粘贴”命令。 光盘上的文件将会被复制到在第3步指定的文件夹的子文件夹,要指定一个新文件夹作为信任心,执行以下步骤: 1. 打开Excel并选择“Office按钮”-“Excel选项”命令以显示“Excel选项”对话框。 2. 在“Excel选项”对话框,单击“信任心”选项卡。 3. 单击“信任心设置”按钮。 4. 在“信任心”对话框,单击“受信任位置”选项卡。 5. 单击“添加新位置按钮以显示“Microsoft Office受信任心”对话框。 6. “Microsoft Office受信任心”对话框,单击“浏览”按钮并查找包含从光盘上复制过来的文件夹。 7. 确保选择“同时信任此位置的子文件夹”。 执行这些步骤后,当从该位置选择XLSM文件时,宏已启用,这样就不会看见安全警告了。 下面列举了一些实例文件和一些简单的描述。 注意:有些章节没有实例。 Chapter 01 table and chart.xlsx:一个简单的创建表和图表的介绍性实例。 Chapter 03 loan payment calculator.xlsx:演示公式的工作簿。 number formatting.xlsx:包含一些内置数字格式实例的工作簿。 Chapter 05 budget.xlsx:演示在工作表使用的格式的一个简单的多工作表预算工作簿。 Chapter 06 real estate table.xlsx:包含实际使用表格的real estate列表的工作簿。 Chapter 07 loan payments.xlsx:包含演示应用简单格式效果的数据区域和公式的工作簿。 theme examples.xlsx:包含表、SmartArt和一个图表的工作簿,用于演示应用不同文件主题后的效果。 Chapter 11 cell references.xlsx:用于演示复制公式时使用不同类型单元格引用的效果的工作簿。 circular reference.xlsx:一个演示目的循环引用的工作簿。打开这个工作簿时,会看见有关循环引用的信息。 worksheet functions.xlsx:包含一个列举和描述了每个工作表函数的表的工作簿。 table formulas.xlsx:用于演示表内公式的使用的工作簿 Chapter 12 character set.xlsx:一个以任意安装在系统的字体显示字符的工作簿。 text formula examples.xlsx:一个包含高级文本公式例子的工作簿。 text histogram.xlsx:一个包含两个直接在区域创建柱状图的例子的工作簿。 Chapter 13 holidays.xlsx:一个演示了如何计算美国10个年假日的工作簿。 jogging log.xlsx:一个记录时间和慢跑过程的工作簿。演示了时间的使用和一天的某个时间没有直接联系。 time sheet.xlsx:一个记录每周工作时间的工作表。 work days.xlsx:一个演示了如果计算两个日期之间的工作天数的工作簿(除了周末和假期以外)。 Chapter 14 basic counting.xlsx:一个演示基本的计算公式的工作簿。 conditional summing.xlsx:一个演示如何使用单个或多个条件计算进行条件求和的工作簿。 cout unique.xlsx:一个演示如何计算区域内惟一(非复制的)项的工作簿。 counting text in a range.xlsx:一个演示计算区域内字符数量的各种方式的工作簿。 cumulative sum.xlsx:一个演示如何计算一个累积和的工作簿。 frequency distribution.xlsx:一个演示创建频率分布的四种方法的工作簿。 multiple criteria counting.xlsx:一个演示使用多个条件计算公式的工作簿。 Chapter 15 basic lookup examples.xlsx:一个演示基本的查找技巧的工作簿。 specialized lookup examples.xlsx:一个演示特殊的查找技巧的工作簿。 Chapter 16 annuity calculator.xlsx:一个计算养老金利润的工作簿。 credit card payments.xlsx:一个包含计算信用卡付款的公式的工作簿。 depreciation.xlsx:一个演示计算资产折旧的方法的工作簿。 investment calculations.xlsx:一个演示计算投资利润的公式的工作簿。 irregular payments.xlsx:一个演示不规则还款的贷款计算的工作簿。 loan amortization schedule.xlsx:一个计算贷款分期偿还时间表的工作簿。 loan data tables.xlsx:一个演示如何使用一种方法和两种方法计算数据表的贷款。 loan payment.xlsx:一个包含计算贷款还款的公式的工作簿。 Chapter 18 calendar array.xlsx:一个演示如何使用复杂的数组公式在区域显示一个月的日历的工作簿。 multi-cell array formulas.xlsx:一个演示多单元格数组公式的工作簿。 single-cell array formulas.xlsx:一个演示单个单元格数组公式的工作簿。 Chapter 19 area charts.xlsx:一个包含面积图表例子的工作簿。 bar charts.xlsx:一个包含条形图表例子的工作簿。 bubble charts.xlsx:一个包含气泡图例子的工作簿。 column charts.xlsx:一个包含柱形图例子的工作簿。 cylinder cone pyramid charts.xlsx:圆柱、圆锥和棱锥图例子。 doughnut charts.xlsx:圆环图例子。 hands-on example.xlsx:一个包含在一个简单的图表例子的数据的工作簿。 line charts.xlsx:一个包含折线图例子的工作簿。 pie charts.xlsx:一个包含饼图例子的工作簿。 radar charts.xlsx:一个包含雷达图例子的工作簿。 six chart types.xlsx:一个使用6种图表类型显示相同区域的工作簿。 stock charts.xlsx:一个包含股价图例子的工作簿。 surface charts.xlsx:一个包含曲面图例子的工作簿。 xy charts.xlsx:一个包含XY散点图例子的工作簿。 Chapter 20 comparative histogram.xlsx:一个演示如何创建比较柱状图的工作簿。 conditional colors.xlsx:一个包含根据数值显示不同颜色的柱形图的工作簿。 function plot 2D.xlsx:一个演示如何使用一个变量的函数绘图的工作簿。 function plot 3D.xlsx:一个演示如何使用两个变量的函数绘图的工作簿。 gantt.xlsx:一个演示如何创建简单的有关工程方案的甘特图的工作簿。 gauge chart.xlsx:一个包含将单数据点绘制成量表的图表的工作簿。 log scale.xlsx:一个演示图表的对数标度的工作簿。 picture charts.xlsx:一个演示在图表使用图片的工作簿。 single data point charts.xlsx:演示各种单数据点例子,包括温度计图和标准尺图。 thermometer chart.xlsx:一个包含将单数据点绘制成温度计的图表的工作簿。 weather combination chart.xlsx:一个演示使用两个数值轴的合并图表的工作簿。 Chapter 21 daily staffing levels.xlsx:一个演示设置条件格式的颜色刻度的工作簿。 conditional formatting formulas.xlsx:一个演示条件格式公式的工作簿。 data bars examples.xlsx:一个演示较大区域的设置条件格式的颜色刻度的工作簿。 icon set examples.xlsx:一个演示设置条件格式的图标设置的工作簿。 Chapter 24 number formats.xlsx:一个包含许多自定义格式例子的工作簿。 Chapter 25 data validation examples.xlsx:一个包含数据有效性例子的工作簿。 Chapter 26 outline example.xlsx:一个包含适用分组显示的数据的工作簿。 Chapter 27 regionl.xlsx:用于演示数据合并的三个工作表之一。 region2.xlsx:用于演示数据合并的三个工作表之一。 region3.xlsx:用于演示数据合并的三个工作表之一。 Chapter 28 webpage.xlsx:一个用于演示HTML输出的工作簿。 Chapter 33 budget data.accdb:惟一一个Microsoft Access 2007文件,用于演示Microsoft查询。 Chapter 34 bank accounts.xlsx:一个包含适用于数据透视表的数据的工作簿。 Chapter 35 calculated fields and items.xlsx:一个包含演示计算字段和计算项的数据透视表的工作簿。 county data.xlsx:一个包含一个大表格和从表创建的数据透视表的工作簿。 employee list.xlsx:一个包含演示数据透视表非数字型数据的表格的工作簿。 hourly readings.xlsx:一个包含演示按时间分组的时间信息的工作簿。 income and expense.xlsx:一个包含演示如何在数据透视表内引用单元格的数据透视表的工作簿。 music list.xlsx:一个演示如何创建和格式化数据透视表报表的工作簿。 reverse pivot.xlsm:一个包含将汇总表转换为3列数据库表的VBA宏的工作簿。 sales by date.xlsx:一个包含演示按时间分组的时间信息的工作簿。 sales by region.xlsx:一个演示如何从数据透视表创建透视图的工作簿。 test scores.xlsx:一个演示如何使用数据透视表创建频率分布的工作簿。 Chapter 36 direct mail.xlsx:一个包含演示如何创建两种方式的假设分析数据表的利润模型。 mortgage loan data table.xlsx:一个演示如何创建一种方式的假设分析数据表的工作簿。 mortgage loan.xlsx:一个使用输入单元格和公式单元格演示假设分析过程的工作簿。 production model.xlsx:一个演示方案管理器的工作簿。 Chapter 37 allocating resources.xlsx:一个包含演示如何分配资源和使用“规划求解”来最大化利润的模型的工作簿。 investment portfolio.xlsx:一个包含演示如何使用“规划求解”来最大化投资项目利润的模型的工作簿。 linear equations.xlsx:一个演示如何使用“规划求解”解决一组线性方程式的工作簿。 mortgage loan.xlsx:一个使用输入单元格和公式单元格进行单变量求解的工作簿。 three products.xlsx:一个包含演示“规划求解”过程的简单模型的工作簿。 Chapter 38 atp examples.xlsx:演示在“分析工具库”加载项使用的工具的工作簿。 Chapter 39 cube root.xlsm:一个包含计算立方根的VBA函数的工作簿。 current date.xlsm:一个包含用来在活动单元格插入一个当前日期的简单VBA宏的工作簿。 list formulas.xlsm:一个包含用来在工作表生成一个所有公式列表的VBA宏的工作簿。 Chapter 40 vba functions.xlsm:一个包含用于工作表公式的VBA函数的工作簿。 Chapter 41 change case.xlsm:使用UserForm以让用户进行选择的VBA宏。 show message.xlsm:一个包含显示信息的UserForm的工作簿。 Chapter 42 mortgage loan.xlsx:一个演示如何使用一个工作表的ActiveX控件的工作簿。 worksheet controls.xlsm:一个包含所有用于一个工作表的ActiveX控件的例子的工作簿。 Chapter 43 monitor a range.xlsm:一个包含VBA Worksheet_Change宏用于控制指定区域的所有更改的工作簿。 selection change event.xlsm:一个包含VBA Worksheet_Change宏用于更改活动单元格行和列颜色的工作簿。 Chapter 44 chart macros.xlsm:一个包含计算图表的VBA宏的工作簿。 range copy.xlsm:一个包含复制一个大小不固定区域的VBA宏的工作簿。 range move.xlsm:一个包含移动单元格区域的VBA宏的工作簿。 select cells.xlsm:一个包含演示选区域技巧的VBA宏的工作簿。 selection type.xlsm:一个包含演示如何确定当前选区域的对象类型的VBA宏的工作簿。 skip blanks while looping.xlsm:一个包含演示如何在单元格区域有效循环的VBA宏的工作簿。 Chapter 45 change case.xlam:一个从Chapter 41change case.xlsm例子创建的加载项文件。
第1篇 Excel基本功能 • 冻结窗格 • 名称框定位 • 区域名称显示 • 多表区域设置格式 • 自动填充功能 • 数据的格式化 • 设置数字格式 • 数据类型转换 • 自定义数字格式 • 数据的填充复制 • 数据的查找替换 • 格式查找替换 • 数据含通配符的查找 • 表格边框设置立体效果 • 如何在Excel自动扩展格式 • 如何在Excel自动套用格式 • 自定义工具栏 • 非连续区域集打印 • 设置打印标题 第2篇 使用公式和函数 • 使用简单公式计算产品销售利润 • 使用相对和绝对引用计算产品销售额与利润 • 多表区域引用 • 利用混合引用制作九九乘法表 • INDEX函数和SUMIF函数特殊情况下的易失性 • Excel公式结果的检验和验证 • 创建Excel动态名称来实现采购数据的动态引用 • 成绩检索表-Excel名称代替引用 • Excel图表使用名称 • 相对引用和混合引用定义名称 • 借用“列表”定义动态名称 • Excel工作表复制的名称问题 • 利用文本比较标识首次出现的记录 • 更改数据字母大小写 • 利用MID 函数提取身份证号码的8 位生日数字 • 使用文本提取函数进行数字分列 • 使用查找函数拆分空格分隔的数据 • 实现EAN-13条码的校验位的算法 • 利用文本查找函数进行模糊查找 • 利用SEARCHB 函数分离全半角字符 • 利用FIND 函数提取连续数字 • 统计开奖号码不重复数字个数 • 取得零件规格的最后序号 • 利用TEXT函数格式化设备编号 • 从身份证号码提取员工的生日信息 • 使用TEXT 函数显示文格式的年份 • 将数值转换为商业发票文大写金额 • 生成文大写金额 • 利用CELL 函数取得动态工作表标签名称 • 利用MOD 函数生成数字校验码 • 利用MOD 函数实现培训反馈表票数求和 • 利用取舍函数生成重复个数的自然数序列 • 按照特定条件进行取舍计算 • 利用取舍函数解决四舍六入问题 • 产生50~100 的随机整数 • 利用随机函数仅生成数字和字母 • 利用随机函数实现考试座位随机编排 • 日计帐的余额累计 • 计扣个人所得税 • 统计月末考试大于等于平均分的总分 • 利用CHAR 函数生成A~Z 序列 • 利用DATE 函数生成指定日期 • 利用运算符计算日期相差天数 • 利用日期函数计算公民年龄 • 利用日期函数计算员工退休日期 • 计算上月的天数 • 计算目标日期所在季度的最后一天 • 返回目标日期是全年的第几天 • 判断是否为闰年 • DATEDIF函数基本用法 • 利用日期函数计算员工工龄 • 计算指定日期的星期值 • 计算上月月末日期的星期 • 指定某月的第几周的天数 • 推算出指定年份的母亲节和父亲节日期 • 计算上个月的考勤天数 • 计算基金赎回入账日期 • 加班时间的累加 • 计算车间工人工时 • 员工加班时间的舍入计算 • 使用VLOOKUP 函数进行员工信息查询 • 利用HLOOKUP 函数查询产品月销售量 • 查找某员工是否登记在员工信息表 • 判断员工公积金是否重复提缴 • 查询申购基金的申购手续费 • 从成绩明细表查询学员总成绩 • 利用LOOKUP 函数实现无序查询 • 取得最后非空单元格数值 • 利用行列号函数生成永恒的序号 • 查询员工信息表所有人事信息 • 利用INDIRECT函数动态统计产品销量 • 利用OFFSET函数产生区域引用 • 利用INDEX函数隔行提取数据 • 多条件组合查询资料 • 利用INDEX函数结合MATCH函数进行向左查找 • 实现根据学员成绩查询等级 • 确定工资单最后一名员工的位置 • 根据工资表生成工资条 • 利用CHOOSE函数重新生成内存数组 • 利用查找函数进行多表数据标识 • 实现多区域联合判断求值 • VLOOKUP函数实现向左查询 • 从生产配件编号提取连续的数字编码 • 利用MATCH 函数提取连续数值 • 查询并汇总各产品销售额 • 利用MATCH函数汇总最后3 天的产品销售额 • 利用RANK函数实现按班级进行动态排名 • 利用COUNT函数统计培训反馈表的平均票数 • 动态引用商品进货明细表 • 统计培训课程表各部门的授课数 • 统计进货量大于5小于10的型号数量 • 标注各种水果第1次出售日期 • 查询重复输入员工身份证 • COUNTIF函数使用通配符统计示例 • 汇总指定公司的产品季度销量 • 统计二季度手机销量情况 • 利用SUMIF 函数实现多表汇总 • 按区间统计数值个数 • 学员英语成绩分段统计人数 • 计算比赛评分表频率最高的分值 • 利用极值函数限定销售价格 • 取得不重复的第2 个最低报价 • 统计各科成绩大于等于平均分的总平均分 • 计算体操比赛的选手得分 • 统计年度培训完成情况表 • 在筛选条件下生成连续序号 • 按学员成绩进行排名 • 根据比赛成绩实现国式排名 • 根据学员成绩的百分比占比划分等级 • 统计购买商品的不重复VIP 用户数 • 商品月度销量统计汇总 • 统计足彩数据最多连胜场数 • 单利与复利的比较 • 终值系数和现值系数 • 普通年金终值和现值的计算过程 • 预付年金终值和现值的计算过程 • 递延年金终值和现值的计算过程 • 年金终值系数表和年金现值系数表 • 名义利率与实际利率 • 整存整取 • 零存整取(一) • 零存整取(二) • 房屋的价值(一) • 房屋的价值(二) • 买卖房屋的利润率 • 投资经营房屋的利润率 • 多久才能拥有100万(一) • 多久才能拥有100万(二) • 孩子上大学的学费(一) • 孩子上大学的学费(二) • 孩子上大学的学费(三) • 利用Excel财务函数计算住房按揭还款计划 • 相同间隔时间序列的现金流量净现值 • 相同间隔时间序列的现金流量内部收益率 • 不规则时间序列和现金流量的净现值与内部收益率 • 考虑融资成本和再投资收益的内部收益率 • 直线折旧法 • 年限总和折旧法 • 固定余额递减折旧法 • 双倍余额递减折旧法 • 可变余额递减法的累计折旧 • 累计到第2年第3 季度期的累计折旧 • CONVERT函数的应用 • 使用CONVERT函数应注意正确书写 • 多单元格数组公式计算销售金额 • 单个单元格数组公式计算销售总额 • 两个一维数组的乘法运算 • 两个一维数组的连接运算 • 使用两个一维数组构造二维数组 • 部门评价等级转换 • 使用MMULT 函数计算产品结构指数 • 产生1-10 的自然数垂直序列和水平序列 • 等比例构造一维循环数组 • SUMIF函数对产品产量进行逐行汇总 • 利用MMULT函数实现数组累加 • 将销售明细表合并单元格填充地区名称 • 将二维数组按列转换为一维数组 • 数组公式实现单条件求和 • 计算一周内存采购的平均价格 • 统计各品牌的商品销量汇总 • 利用COUNT函数代替SUM 函数统计不重复记录 • 标识零件规格号的非法数据 • 将文大写日期转换成日期序列 • 实现按日期和客户名查询数据 • 按条件实现总表拆分到分表 • 按比赛成绩进行降序排列 • 对员工信息表员工姓名排序 • 从培训课程安排表提取讲师部门 • 从商品明细表提取唯一品牌名称 • 根据商品和品牌确定唯一品牌名称 • 多维引用示例的数据来源 • 利用INDIRECT函数返回对多表区域的引用 • 求金额最大的费用项目 • 提取无重复的水果清单 • 计算按原始股折算的某股票最高价格 • 计算用餐记录分摊实例 • 计算最好成绩和的最优成绩实例 • 跨多表条件求和 • 宏表函数取得工作表标签名称 • 标识商品销售表红色字体的记录 • 按照商品采购表的数值格式显示查询结果 • 提取指定单元格的公式表达式 • 根据立方体指定参数计算公式结果 • 提取固定字符间隔的零件规格号 第3篇 创建图表和图形 • 图表种类 • 柱形图 • 条形图 • 折线图 • 饼图 • XY散点图 • 面积图 • 圆环图 • 雷达图 • 曲面图 • 气泡图 • 股价图 • 圆柱图、圆柱图和棱锥图 • 自定义图表类型 • 线-柱图 • 两轴折线图 • 对数图 • 组合图 • 创建自定义图表 • 添加误差线 • 设置轴格式 • 分类坐标轴标签 • 空单元格的绘制方式 • 设置单个数据点格式 • 设置透明色 • 多工作表数据作图 • 添加趋势线 • 设置三维图表 • 数字条件格式 • 设置坐标轴的交点 • 使用次坐标轴 • 图表上的文本框 • 图表的组合 • Microsoft Graph图表 • 图表转为图片 • 设置自动筛选 • 添加辅助行 • 定义名称 • 数据透视图 • 使用Excel VBA • 添加水平线 • 添加垂直线 • 复合饼图 • 等高线图 • 直方图 • 排列图 • 控制图 • 动态对比图 • 动态股票图 • XY散点折线图的内插值计算 • 自选图形种类 • 插入自选图形 • 添加文本 • 自选图形绘制线条和连接符 • 旋转和翻转 • 对齐和分布 • 自动靠齐 • 设置叠放次序 • 设置组合 • 设置阴影 • 设置三维效果 • 设置超链接 • 制作室内平面图 • Excel图形 • Excel工作表背景 • 插入图片到Excel工作表 • 图片的调整 • 裁剪图片 • 旋转图片 • 设置图片的透明色 • 插入动态图片 • 制作组织结构图 • 流程图 • 循环图 • 射线图 • 棱锥图 • 维恩图 • 目标图 • 创建艺术字 • 插入剪贴画 第4篇 使用Excel进行数据分析 • 数据列表的实例 • 使用记录单为数据列表命名动态名称 • 数据列表按行排序 • 含有公式的数据排序 • 简单排序的例子 • 自定义排序 • “关系或”条件的高级筛选 • “关系与”条件的高级筛选 • 利用高级筛选选择不重复的记录 • 三个“关系或”条件的高级筛选 • 使用计算条件的Excel高级筛选 • 同时使用“关系与”和“关系或”的Excel高级筛选 • 创建分类汇总 • 列表 • Excel分列功能 • 使用“导入外部数据”功能导入标准工时数据 • Microsoft Query检索数据源 • 销售数据清单 • 定义名称创建动态数据透视表 • 分页显示数据透视表 • 使用数据列表功能创建动态数据透视表 • 按日期或时间项组合 • 按数字项组合 • 指定项组合 • 创建计算字段 • 添加下计算项 • 获取Excel数据透视表数据 • 创建复合范围的Excel数据透视表 • 数据透视图 • 模拟运算表 • 单变量求解 • 规划求解 • 分析工具库 第5篇 使用Excel的高级功能 • 设置单元格数值条件 • 设置公式条件 • 复制删除条件格式 • 应用示例 • 优先顺序 • Excel数据有效性允许的条件 • 定位复制删除Excel数据有效性 • 数据有效性的高级应用 • 数据有效性的高级应用_多表不重复输入 • 分级显示 • 合并计算 第6篇 使用Excel进行协同 • Excel单元格引用建立链接统计奖金总额 • 超链接实例 • 创建Excel动态超链接 • 发布(不)具有交互性的网页_Excel的交互性 • 创建Web查询 • Excel和ASP • Excel与XML数据 • Excel与其他应用程序共享数据 • 使用Excel工作组 第7篇 Excel自动化 • 录制宏 • VBA语言基础 • 与Excel进行交互 • Excel的自定义函数 • 如何操作Excel工作簿、工作表和单元格 • 工作表的Change事件 • 工作表高亮显示行和列 • 文件保存提醒 • 关闭工作簿是恢复Excel默认设置 • 设置Excel工作簿打开时的界面 • VBA事件激活的顺序 • VBA事件的激活与禁止 • 插入命令按钮 • 使用命令按钮设置单元格格式 • 使用复选框控件制作多选调查问卷 • 使用选项按钮控件制作单项调查问卷 • 使用组合框控件制作调查问卷 • 使用文本框控件快速录入三位数字 • Excel工作簿插入用户窗体 • 在用户窗体插入控件 • 为窗体控件添加事件代码 • 用户窗体的QueryClose事件和Terminate事件

5,139

社区成员

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

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