文章背景:在使用VBA的用户窗体(userform)时,有时会用到二级下拉菜单。比如选择院系(一级下拉菜单)后,班级(二级下拉菜单)的内容自动更新;选择省份后,该省份下面所属的市相应更新。...接下来以省市为例,进行二级下拉菜单的功能实现。...用户窗体内的VBA代码如下: Option Explicit Private Sub provinceselect_Change() 'Populate city data...;当省份的选项发生变化时,城市的信息也做相应的修改。...参考资料: [1] Coursera课程(Excel/VBA for Creative Problem Solving, Part 3)
文章背景:最近在查看同事写的VBA代码时,发现了DTPicker日期控件。...DTPicker是日期选择控件,自Win7开始,它就不是Windows系统自带的,需要下载MSCOMCT2.OCX,并在电脑上注册后才能使用。...因此,在使用DTPicker日期控件之前,需要检查下电脑上office软件的版本是否是32位的。 针对32位的office软件,若要使用DTPicker日期控件,需事先进行如下三步操作。...注册成功后,打开Excel文件,此时可以在excel表格和VBA窗口中调用DTPicker控件。..." & dateVariable End Sub 控件使用的视频演示:http://mpvideo.qpic.cn/0bc3ymabcaaazuamlkzaprrfbq6dchbqaeia.f10002
标签:VBA 为了使用VBA处理批注,需要使用Comment对象。允许删除批注、更改批注文本或查找批注作者或批注所在的单元格等操作。...添加批注 要添加批注,使用Range对象的AddComment方法。...Sub AddComment() '如果批注已经存在,则会导致错误 '因此需要检查是否存在批注或者错误捕捉 Range("A1").AddComment "使用VBA添加批注" End Sub 注意...删除批注 使用Delete方法删除批注。 Commment.Delete 从工作表中删除指定作者的批注 可以通过在调用过程时传递字符串参数来指定作者,而不是对作者进行硬编码。...更改指定作者的批注所在单元格的颜色。
标签:Word VBA 下面介绍在Word中使用VBA操控剪贴板的一些代码,供在某些情形下参考使用。...MyData As DataObject Set MyData = New DataObject MyData.SetText "" MyData.PutInClipboard 下面的代码获取剪贴板中的文本...String strClip = "完美Excel" Set MyData = New DataObject MyData.SetText strClip MyData.PutInClipboard 很简单的一些代码...然而,一旦遇到要使用的情形时,如果了解,就能马上拿来使用。因此,收集在这里备用,也希望能够给有兴趣的朋友提供参考。...注意,在VBA中DataObject对象属于Forms库,因此,要使上述代码能够正常运行,必须满足以下两个条件之一: 1.在你的工程中至少有一个用户窗体。
今天发现了个用EXCEL下载文件的实例,看起来很不错,收藏一下。...Application.EnableEvents = False On Error Resume Next MkDir ThisWorkbook.Path & "\Downloads" '图片文件的存放目录...ThisWorkbook.Path & "\Downloads\" For i = 2 To Sheet1.Range("a65534").End(xlUp).Row 'A列中存放着图片的文件路径...ADODB.Stream") .Type = 1 .Open .write ie.Responsebody 'B列存放着新的文件名
当需要使用某个程序的时候,就一时会找不到。当然一般可以通过电脑的左下角“开始”去找到程序。...这里介绍使用VBA程序来找的方法,一个程序在安装的过程中,一般都会需要管理员权限,这是因为程序的安装一般都要在注册表中写入一些信息,而操作注册表需要管理员权限。...这些写入的信息就包括在安装过程中我们选择的程序安装路径,所以只需要使用VBA去读取相应的注册表信息就可以找到程序的安装路径: Function GetAppPath(AppName As String...) AppName = VBA.UCase$(AppName) If VBA.Right$(AppName, 4) ".EXE" Then AppName = AppName &...CurrentVersion\App Paths\" & AppName & "\Path") If Err.Number 0 Then GetAppPath = "没有找到[" & AppName & "]的安装路径
标签:VBA,表 在Excel中,有时候你可能希望在VBA代码的帮助下动态创建表,然后在该表中进行更多的数据操作。下面是几段代码。...下面的过程将删除表,但保留表的格式,使其看起来像一个表,但执行起来像正常的Excel单元格区域。...Sub RemoveTable() Sheet1.ListObjects(1).Unlist End Sub 下面的代码删除表和表的格式,因此就像一个包含常规数据的工作表。...创建表后使用表名有助于以后引用表。...Dim strName As String strName = Sheet1.ListObjects(1).Name End Sub 注:本文学习整理自thesmallman.com,供有兴趣的朋友参考
标签:VBA 有时候,不一定会查找到精确的值,如果是这样的话,应该可以找到最接近的值。有很多公式可以实现,然而本文不使用公式,而是使用VBA代码来实现。...下面的VBA代码将遍历一系列单元格,并评估最接近的匹配值。...As Range Dim r As Range Dim Mx As Single Dim i As Long Dim target As Integer '要查找的值所在的单元格...(目标匹配的数字)和被评估单元格中的数字之间的最小数字。...如果两个值之间的差为零,则有匹配项,否则,范围内最接近零的数字是最接近的匹配项,因为该数字是最接近的。 本示例中,评估的数字在列B中,你可以根据需要进行更改。
今天,我们将,使用HTML、CSS和JavaScript创建一个完全响应式的下拉菜单。我们的目标是展示一个时尚、多功能的下拉菜单,能够在不同的屏幕尺寸下无缝适配,提升用户体验,而无需繁琐的教程。...概述:在这个项目展示中,我们将深入介绍如何创建一个不仅外观吸引人,而且在各种设备上都能正常工作的下拉菜单。...主要亮点:HTML结构:我们将使用HTML为我们的项目打下基础,构建导航栏和下拉菜单组件的结构。CSS样式:通过CSS,我们将为下拉菜单添加样式,确保它在任何屏幕上都看起来精美、专业。...JavaScript功能:利用JavaScript,我们将为下拉菜单注入交互性,使用户能够轻松浏览我们的网站。...让我们开始吧:从HTML的简单开端到CSS和JavaScript的魔法,让我们展示菜单的演变过程。下拉菜单 HTML 代码:<!
标签:VBA 使用Excel VBA隐藏行的简单方法是使用联合区域。通常,如果要使用VBA快速隐藏行,可以选择自动筛选工具,使用一行代码可快速隐藏数千行。...然而,如果需要在同一区域内为其他目的使用自动筛选,那就必须单独处理每个单元格。如果了解VBA,当程序必须在多个单元格上循环时,它可能会较慢,尤其是在每次迭代后需要执行操作时。...下面,我们将使用Union方法,联合要操作的行,这将只需要一行代码就能隐藏行,大大减少了代码的运行时间。...Union用于联合区域,联合区域是由多个通常不连续的区域组成的区域。然后,我们使用联合区域隐藏所有含有“Hide”的行。...lr代表工作表中最后使用的行的行号。最后,Rng变量是第一个使用的行到最后一个使用的行之间的区域。
下图1是我们再熟悉不过的Excel界面了。 ? 图1 在图1中,我标识了组成Excel界面各元素的名称。...可以使用VBA代码来操作这些界面元素,这就是本专题系列文章要讲解的内容,包括使用VBA代码来修改工作表单元格的颜色与字体、控制工作表行列标题、公式栏、状态栏、设置工作表标签、自定义功能区以及上下文快捷菜单...因为Excel是面向大众的,所以可能某些方面并不合你个人的“口味”,将其作些调整,你可能会觉得更合适,用得也更顺一些。因此,可以定制Excel界面,添加一些自定义的功能,使其更个性化。...这些代码都可以独立实现某项功能,因此,在编写你的VBA程序时,可以在其中添加这里的一些代码,在不影响程序本身功能的同时,将Excel界面修改为自已想要的样子。...说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 Hours:Changingworkbook appearance》,仅供学习研究。
Function Desc(ProdNum) Desc = Application.WorksheetFunction.VLookup(ProdNum, Ra...
标签:VBA 从多个Excel工作表(子工作表)中获取信息,并用子工作表中的所有数据填充汇总工作表(父工作表),这是很多朋友会提到的常见要求。...将新工作表信息添加到汇总工作表的一种非常快速的方法是遍历工作簿中的所有工作表,使用VBA合并数据。...下面VBA程序将执行此操作: Sub Combine1() Dim ws As Worksheet Dim sh As Worksheet Application.ScreenUpdating...Rows.Count).End(xlUp)(2) End If Next ws Application.ScreenUpdating = True End Sub 以上是基于希望使用当前文件中的所有数据更新...如果Summary工作表中有以前的信息,或者希望保留汇总工作表中原来的信息,则可以使用下面的程序: Sub Combine2() Dim ws As Worksheet Dim sh As
与Excel一样,我们也可以使用VBA来操控PPT。...但我们可以借助于Excel的宏录制器,在Excel中录制相关操作的代码,然后稍作修改,将其移植到PowerPoint中。...例如,在Excel中使用宏录制器录制的绘制红色矩形的代码如下: ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 50, 50, 50).Select...只是,在Excel中使用ActiveSheet代表引用了当前工作表,而在PowerPoint中使用ActiveWindow.View.Slide代表引用当前幻灯片。...这为我们提供了一种方法,也就是在Excel中录制相关的操作代码,稍作修改后应用到PowerPoint中。 其实,我们可以直接在Excel的VBE中修改代码,用来生成PPT。
引言:本文的代码与昨天发表的《VBA实战技巧34:使用VBA组织图形1》一样,都整理自mrexcel.com,一个很好的令人兴奋的示例,有兴趣的朋友可以仔细研究。...代码所使用的工作表数据与《VBA实战技巧34:使用VBA组织图形1》相同,如下图1所示,包含所需信息的源数据表,其中: 列A和列B – 两个元素之间的关系。形状填充颜色将来自列A。...列C – 要显示的描述性文本。 列D – 放置在形状旁边的辅助数据。 列E – 形状是否有轮廓。...图1 与《VBA实战技巧34:使用VBA组织图形1》不同,本文的代码自顶向下组织图形,代码运行后的效果,如下图2所示。...VBA代码如下: Dim h%, w% '主程序 Sub main() Dim i%, ob As Worksheet, dt As Worksheet, r As Range, tb As Shape
Windows注册表用于存储与计算机相关的各种设置,VBA中的GetSetting函数和SaveSetting函数能够读写Windows注册表,这样,我们不仅能够获取应用程序和硬件的信息,也可以将应用程序中的信息存储在注册表中以供使用...说明: 1.该函数将值写入注册表中的HKEY_CURRENT_USER\Software\VBand VBA Program Settings键的子键。...因此,在使用从注册表返回的数值型值之前,应该使用合适的转换函数将返回值转换为数值数据类型。 3.GetSetting不能检索注册表项的缺省值。...说明: 1.该函数从注册表中的HKEY_CURRENT_USER\Software\VBand VBA Program Settings键的子键中检索值。...,以此来熟悉VBA中的这几个操控注册表的函数。
引言:本文的代码整理自mrexcel.com,一个很好的令人兴奋的示例,有兴趣的朋友可以仔细研究。 首先,看看代码运行后的效果,如下图1所示。...图1 SmartArt可以创建组织结构图,但会有格式限制,本文给出的代码克服了这一点。 准备一个包含如下图2所示信息的源数据表,其中: 列A和列B – 两个元素之间的关系。形状填充颜色将来自列A。...列C – 要显示的描述性文本。 列D – 放置在形状旁边的辅助数据。 列E – 形状是否有轮廓。...图2 VBA代码如下: Dim h%, w% '主程序 Sub main() Dim i%, ob As Worksheet, dt As Worksheet, r As Range, tb As Shape...msoAutoSizeShapeToFitText tb.TextFrame2.WordWrap= msoFalse tb.TextFrame2.TextRange.Font.Size= 16 '确定大形状的大小
查找重复值、移除重复值,都是Excel中的经典问题,可以使用高级筛选功能,也可以使用复杂的公式,还可以使用VBA。...在VBA中,也有多种方式可以移除重复值,这里介绍RemoveDuplicates方法,一个简洁实用的方法。 示例数据如下图1所示,要求移除数据区域A1:D7中第3列(列C)中的重复值。...图1 实现的VBA代码如下: Sub RemoveDuplicates() Dim rngRange As Range Dim lngLastRow As Long lngLastRow...如果想要指定多个列,使用Array函数: Range("A1:E15").RemoveDuplicates Columns:=Array(3, 5), Header:=xlYes 此时,如果这两列中的值组合是重复的...可以使用3个值:xlYes,xlNo和xlGuess。
标签:VBA,Evaluate方法 假设我们只想复制工作表中指定列的数据,例如第1、2、5列的数据,有多种实现方法,这里介绍使用数组的VBA代码实现。...数组和行都是固定的。如何针对不同的行使其成为动态的?为了涵盖数据集,假设在声明lRow变量后,数组(ar)可以是: ar=Range(“A1:F”& lRow) 但如何对行执行此操作?...可以利用Excel的Evaluate功能来生成灵活的行和列组合。VBA的rows.count命令可以确定区域内数据的终点,并存储该区域,以便在Index公式中使用。...,但有一个优点,即灵活地基于列的长度。...你可以根据实际数据范围和要复制的列,稍微修改上述代码,以满足你的需要。
标签:VBA 在上篇文章:创建可调大小的用户窗体——使用Windows API中,我们使用Windows API实现了允许用户可以调整用户窗体的大小。本文仅使用VBA来实现同样的效果。...本文的代码整理自exceloffthegrid.com,供有兴趣的朋友参考。...VBA解决方案:用户窗体包含一个对象,单击该对象时会记录鼠标的位置;随着鼠标的移动,用户窗体及其对象将根据新的鼠标位置重新定位或调整大小;当释放鼠标按钮时,停止移动以调整大小。...图1 其中,放置了三个元素:一个名为lstListBox的列表框,一个名为cmdClose的命令按钮,一个名为lblResizer的标签。...首先,它将检查窗口是否大于允许的最小大小,以及鼠标是否已被单击。如果两者都为True,则会根据鼠标移动的大小重新定位或调整UserForm和对象的大小。
领取专属 10元无门槛券
手把手带您无忧上云