控件
文章平均质量分 52
taller_2000
不积跬步,无以至千里;不积小流,无以成江海
展开
-
Excel工作表控件实现滚动按钮效果
工作表中有多个Button控件(工作表Form控件)和一个ScrollBar控件(工作表ActiveX控件,名称为ScrollBar2),需要实现如下图所示效果。点击ScrollBar控件实现按钮的滚动效果,实际工作表中Button控件个数不确定。原创 2024-02-25 04:06:45 · 797 阅读 · 0 评论 -
限制选中指定个数CheckBox控件(2/2)
实例需求:工作表中有8个CheckBox控件(下文中简称为控件),现在需要实现限制用户最多只能勾选4个控件。在上一篇博客中已经实现了这个需求,其基本思路是用户选中第5个控件时,事件代码将取消勾选最后一个选中的控件。其实这里案例也可以使用防患于未然的思路来解决,即用户选中4个控件之后,就禁用其他控件,用户当然也就无法再勾选更多控件。原创 2024-01-09 13:07:01 · 457 阅读 · 0 评论 -
限制选中指定个数CheckBox控件(1/2)
实例需求:工作表中有8个CheckBox控件(下文中简称为控件),现在需要实现限制用户最多只能勾选4个控件。原创 2024-01-05 13:01:39 · 528 阅读 · 0 评论 -
VBA动态按钮控制台
Excel工作表中可用使用两种命令按钮(ActiveX和窗体控件),但是这些按钮外观的定制并不方便,其实Shape对象完全可用作为按钮,使用方法类似窗体控件按钮,并且可用轻松定制其外观。现在需要实现如下效果:5个按钮作为一组用户单击某个按钮,此按钮变色并启用3D样式原创 2023-11-17 10:16:33 · 312 阅读 · 0 评论 -
限制LitstBox控件显示指定行数的最新数据(3/3)
实例需求:由于数据行数累加增加,控件加载的数据越来越多,每次用户都需要使用右侧滚动条拖动才能查看最新数据。因此希望ListBox只加载最后10行数据(不含标题行),这样用户可以非常方便地选择数据,如下图所示。原创 2023-11-03 01:08:21 · 429 阅读 · 0 评论 -
限制LitstBox控件显示指定行数的最新数据(2/3)
实例需求:由于数据行数累加增加,控件加载的数据越来越多,每次用户都需要使用右侧滚动条拖动才能查看最新数据。因此希望ListBox只加载最后10行数据(不含标题行),这样用户可以非常方便地选择数据,如下图所示。上一篇博客已经实现了上图效果,美中不足的是需要借助辅助单元格区域,某些`Excel洁癖`的小伙伴会觉得不爽,工作表中多了一些非必要的数据,接下来就一起来看看如果不借助辅助单元格区域实现类似的效果。原创 2023-10-16 13:10:50 · 236 阅读 · 0 评论 -
限制LitstBox控件显示指定行数的最新数据(1/3)
工作表Sheet1中的数据表共有3列,行数不确定,现需要将数据加载到用户窗体的ListBox控件中,设置控件的相关属性属性如下所示。窗体显示效果如下图所示,由于启用了列标题,所以`RowSource`属性指定的单元格范围从第二行开始,这个参数指定范围之上的一行数据将作为ListBox控件的标题行。ListBox控件的这几个常规属性大家也经常用到,无需多讲。由于数据行数累加增加,控件加载的数据越来越多,每次用户都需要使用右侧滚动条拖动才能查看最新数据,因此希望ListBox只加载最后10行数据原创 2023-10-16 12:28:21 · 437 阅读 · 0 评论 -
VBA窗体跟随活动单元格【简易版】(1/2)
这个效果是不是很酷,VBA窗体(即UserForm,下文中简称为窗体)可以实现很多功能,例如:用户输入数据,提供选项等等。如本博客标题标注,这里将要实现的一个简易版,代码行数少,容易理解,便于大家移植,但是其适用场景有局限性,如果希望完美实现,那么就需要适用Windows API来精确定位。原创 2023-10-16 11:25:34 · 835 阅读 · 0 评论 -
VBA定位文本框控件中光标位置
实例需求:用户窗体中有如下4个TextBox控件,TextBox1中已经有文字内容,点击【定位】按钮,统计TextBox1中段落数量,并定位TextBox1中光标位置(箭头处),如下图所示。原创 2023-04-01 01:04:54 · 2725 阅读 · 0 评论 -
使用VBA获取电脑MAC地址
这个需求看似有些无厘头,为嘛要用VBA来读取MAC地址,存在的就是合理的。例如使用MAC地址和其他硬件信息可以生成电脑的唯一识别号,用于软件注册和实现软件狗功能。当然可能还也更多的应用场景。VBA对象模型只是涵盖Office对象,如果需要读取硬件信息,就要借助WMI(Windows Management Instrumentation),其简单介绍请参考 [***微软官方文档***](https://learn.microsoft.com/en-us/windows/win32/wmisdk/about原创 2023-02-01 07:22:45 · 1756 阅读 · 0 评论 -
Excel工作表中的无敌按钮
也许你个Excel老手(高手),但是你也许没有见过这样的按钮。首先,这是个xlsx文件,肯定不会有VBA代码或者宏表其次,这个按钮可以“指定宏”,那么可以断定这是个工作表中的窗体按钮控件再次,工作表中的窗体按钮控件也没有相关属性设置提示信息。那么如何实现的如下效果呢?神奇 。。。诡异 。。。灵异按钮 。。。原创 2022-10-07 11:08:11 · 282 阅读 · 0 评论 -
如何实现延时响应按钮
实例需求:Excel工作表中按钮实现,每次点击将A1单元格值加1,并且点击之后5秒内不再响应后续的点击操作。这个需求的前半部分,其实非常简单,初学VBA的小白可以给出代码。原创 2021-07-31 11:50:30 · 510 阅读 · 0 评论 -
图形对齐排列(控件的怪问题)
网友需求:选中工作表中的两个矩形后,执行代码实现两个矩形对齐排列。ActiveX控件会导致工作表中图形的选中状态发生变化,需要使用窗体控件实现。原创 2020-11-28 03:19:17 · 420 阅读 · 0 评论 -
工作表窗体控件共用事件代码
实例需求:某预测模型有4个输入参数,使用过程中需要依次分别加载4组不同的参数,参数组位于工作表中的第4行到第7行,并且在A列中创建了四个窗体控件按钮,单击某个按钮将相应行的数据加载到第2行单元格中。对于略有VBA基础的人来说,解决这个问题并不难,每个按钮写一个事件代码,将相应行的四个参数拷贝(写入)到第2行单元格中,但是如果要求四个按钮共用同一个事件代码,那么如何实现这个需求呢原创 2020-08-16 05:51:34 · 722 阅读 · 0 评论 -
工作表中控件的特殊引用方法
在我以前发表的博客文章“深入了解Excel工作表中的控件”中介绍了如何引用工作表中的控件,其使用方法和用户窗体中的控件有很多不同之处。 例如工作表中有如下四个ActiveX复选框。 如下代码可以很容易的读取控件的相关属性。Sub ActiveXCtl() For Each ctl In ActiveSheet.OLEObjects Debug.Print ctl...原创 2018-08-27 06:53:16 · 1462 阅读 · 0 评论 -
深入了解Excel工作表中的控件
Excel工作表中可以使用两种控件:表单控件和ActiveX控件。插入控件使用VBA在工作表中插入控件非常简单。Sub AddCtls() '表单控件 ActiveSheet.Buttons.Add 87.75, 33, 86.25, 33 ActiveSheet.CheckBoxes.Add 228.75, 33, 70.5, 33 'Acti...原创 2018-03-02 03:44:38 · 7656 阅读 · 0 评论