Excel VBA - 控件与用户窗体 及 常用函数

本文详细介绍了VBA中各种控件的功能及其使用方法,包括TextBox、CommandButton等,并解释了关键事件如KeyPress、KeyDown的工作原理。同时,还提供了实用函数及操作Excel工作簿的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:http://msdn.microsoft.com/zh-cn/library/ktwtk9ff%28v=VS.80%29.aspx

 TextBox事 

→KeyPress事件的语法如下:


KeyANSI只是个参数,所以可以改成任何喜欢的名字,每键入一个值的时候,都会触发KeyANSI,通过设置,可以实现限制默写值的键入。
→KeyDown事件    按下触发
→KeyUp事件    松手触发

 CommandButton事 
→MouseMove事件
→MouseDown事件    按下事件,左右键都可
→MouseUp事件    松开鼠标事件
→MouseClick事件    鼠标点击事件,右键不可


 UserForm事 
→MouseMove事件
→Initialize事件
Unload UserForm1   实现关闭窗体

 ListBox事 




 常用函数  

→ Instr(2, "eAlex", "e")    返回e在Alex中第一次出现的位置(从第1个字符开始算起,结果是4)
→ Round(34.566, 2)    返回前者保留2位小数的四舍五入结果
→ Int(34.43)    返回不大于此数的最大整数
→ Val("22.3")    转成数字
→ Left("Alex", 3)    左边3个字符
→ Mid("Alex", 1, 2)    索引1开始,长度为2的字符
→ Right("Alex.exe", 3)    右边3个字符


→ Asc("A")    返回一个 Integer,代表字符串中首字母的字符代码
→ Trim("  Alex  ")    去除所有空格
→ LTrim("  Alex  ")    去除左空格
→ RTrim("  Alex  ")    去除右空格
→ Len("Sleep")    计算长度
→ CInt("123")    转成整型Integer
→ CStr(123)    转成字符型String
→ Space(2)    两个空格


→ r = Cells(Rows.Count, 1).End(xlUp).Row    获取内容的最后一行

Range("A1:A10").Select
Selection.Copy
Cells(2, 2).Select
ActiveSheet.Paste
Application.CutCopyMode = false    '选区复制,然后黏贴,最后取出选区框


→ Workbooks.Open "F:\Desktop\1.xls"    打开文件
→ ActiveWorkbook.Close savechanges:=True    关闭文件,保存文件
→ ActiveWorkbook.SaveAs Filename:="F:\Desktop\2.xlsx"    另存为文件


 TextBox控件 
→TextBox1.Text
→TextBox1.SetFocus    将光标定位到TextBox1上
→TextBox1.SelStart    指定选中文本的起点位置
→TextBox1.MaxLength    文本框可输入的最长长度
→TextBox1.MultiLine    多行
→TextBox1.Top
→TextBox1.Left
→TextBox1.Width
→TextBox1.Height

 CommandButton控件 

→CommandButton1.Top
→CommandButton1.Left
→CommandButton1.Width
→CommandButton1.Height

ListBox控件 

→ListBox1.ListIndex    选中文本的索引,-1为没选定,0为第一个
→ListBox1.List(0)    第一个条目的内容
→ListBox1.ListCount    条目数目
→ListBox1.ListStyle    值为1是有选框的
→ListBox1.MultiSelect     值为1可以多选

UserForm控件 
→UserForm1.Show
→Unload UserForm1

 ComboBox控件 
→ComboBox1.List    可以直接用数组赋值
→ComboBox1.ListIndex = 0    ComboBox上显示第一个文本
→ComboBox1.Clear    去除上面所有内容
→ComboBox1.AddItem "北京"    加入内容

 MultiPage控件 
→MultiPage1.Value = 0    多页显示的时候显示第一页的内容
→MultiPage1.SelectedItem.Index > 2     选中出了第一页以外的其他页


MultiPage控件与TabStrip控件的区别就在于前者每一页之间没有任何关系,而后者则是公用同一个页面,只是标签名称不同的~
 TabStrip控件 

→TabStrip1.Value = 0    多页显示的时候显示第一页的内容
→TabStrip1.SelectedItem.Caption    不同Tab的名称
→TabStrip1.SelectedItem.Index    不同Tab的索引
→TabStrip1.Style    有三个选择,默认是0,1是按钮形式的

 Image控件 

→Image1.Picture = LoadPicture(FilPath)    加载图片,其中FilPath是图片的完整地址



Dim Arr As Variant
Dim r As Integer
r = Cells(Rows.Count, 1).End(xlUp).Row
Arr = Range("A1:A" & r)
ListBox1.List = Arr
ComboBox也有同样地用法~






在现代 UI 开发中,将多个操作按钮组合成一个按钮集合,并在点击时展开其他操作按钮是一种常见的设计模式。这种设计可以提高界面的整洁性和用户体验。以下是几种实现方式,适用于不同的开发框架和场景。 ### 1. WPF 中使用 `ContextMenu` 或 `Expander` 实现按钮集合展开 在 WPF 中,可以通过 `Button` 结合 `ContextMenu` 或 `Expander` 控件实现点击主按钮后展开多个操作按钮的效果。 #### 示例代码(使用 `ContextMenu`): ```xml <Button Content="操作"> <Button.ContextMenu> <ContextMenu> <MenuItem Header="编辑" Command="{Binding EditCommand}" /> <MenuItem Header="删除" Command="{Binding DeleteCommand}" /> <MenuItem Header="导出" Command="{Binding ExportCommand}" /> </ContextMenu> </Button.ContextMenu> </Button> ``` #### 示例代码(使用 `Expander`): ```xml <Expander Header="操作"> <StackPanel Orientation="Vertical"> <Button Content="编辑" Command="{Binding EditCommand}" /> <Button Content="删除" Command="{Binding DeleteCommand}" /> <Button Content="导出" Command="{Binding ExportCommand}" /> </StackPanel> </Expander> ``` ### 2. Vue 中使用 `v-if` 或 `v-show` 控制按钮展开 在 Vue 中,可以通过绑定一个布尔值来控制按钮集合的展开收起。 #### 示例代码: ```vue <template> <div> <button @click="toggleMenu">操作</button> <div v-if="isMenuOpen" class="menu"> <button @click="edit">编辑</button> <button @click="remove">删除</button> <button @click="exportData">导出</button> </div> </div> </template> <script> export default { data() { return { isMenuOpen: false }; }, methods: { toggleMenu() { this.isMenuOpen = !this.isMenuOpen; }, edit() { // 编辑逻辑 }, remove() { // 删除逻辑 }, exportData() { // 导出逻辑 } } }; </script> <style> .menu { margin-top: 5px; } </style> ``` ### 3. 使用通用悬浮按钮工具栏(适用于桌面应用) 对于桌面应用程序,尤其是视频控件或需要悬浮按钮的场景,可以参考引用中的 `BannerWidget` 类设计[^4]。该设计允许动态设置按钮的图标、颜色、位置等属性,并支持点击展开更多操作按钮。 #### 示例结构: ```cpp class BannerWidget { public: void setButtons(const std::vector<ButtonInfo>& buttons); void setPosition(const QPoint& pos); void setBackgroundColor(const QColor& color); // ... }; ``` 在实际使用中,可以通过调用 `setButtons` 方法来设置多个操作按钮,并通过点击主按钮来触发展开动画。 ### 4. Excel VBA 中的按钮集合(适用于宏按钮) 在 Excel 中,可以通过 VBA 创建一个按钮,点击后弹出包含多个操作选项的窗体或直接执行多个操作。 #### 示例代码: ```vba Sub ShowOptions() Dim choice As Integer choice = MsgBox("请选择操作:1. 合并工作表 2. 导出数据 3. 清除内容", vbYesNoCancel + vbQuestion, "操作选择") Select Case choice Case vbYes Call 合并当前工作簿下的所有工作表 Case vbNo Call 导出数据 Case vbCancel Call 清除内容 End Select End Sub ``` ### 总结 - **WPF**:推荐使用 `ContextMenu` 或 `Expander` 控件实现按钮集合的展开。 - **Vue**:通过 `v-if` 或 `v-show` 控制按钮集合的显示隐藏。 - **桌面应用**:可参考 `BannerWidget` 类实现通用悬浮按钮工具栏。 - **Excel VBA**:通过 `MsgBox` 或自定义窗体实现按钮集合的选择。 这些方法可以根据具体的技术栈和需求进行选择和调整。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值