Windows 特殊文件夹,包括 Desktop 文件夹、MyDocuments 文件夹等,如果我们要在VBA中用到这些文件夹,可以用下列代码来获取这些特殊文件夹的路径。 Option Explicit Sub GetMyDocumentsPath() Dim WSHShell As Object Set WSHShell = CreateObject(Wscript. Shell) '请去掉Shell前的空格 MsgBox MyDocuments文件夹位于:...
我们可以用一个常规的方法来实现当单击某个单元格时运行一个指定的宏。方法如下: 1.选择一个单元格,按住Shift键的同时,单击菜单编辑复制图片,在弹出的复制图片对话框中,外观选择如屏幕所示,格式选择位图,单击确定。这时该单元格以位图的形式被复制下来。 2.继续按住Shift键,再次单击菜单编辑粘贴图片,这时单元格...
我们可以用一个自定义函数来提取单元格注释。方法如下: 1.按Alt+F11,打开VBA编辑器。 2.单击菜单插入模块,在右边的代码窗口中输入代码: Function GetCommentText(rCommentCell As Range) Dim strGotIt As String On Error Resume Next strGotIt = WorksheetFunction.Clean(rCommentCell.Comment.Text) GetCommentText...
通常在保存Excel工作簿时,如果某个工作表处于活动状态,下次打开这个工作簿时就会自动打开这个工作表。如果我们需要每次打开工作簿时总是打开指定的工作表,而无论保存时哪个工作表处于活动状态,可以用下面一个简单的VBA代码来实现: Private Sub Workbook_Open() Sheet3.Activate End Sub 按Alt+F11,打开VBA编辑器,在...
如果我们要查看一个工作表中的所有公式,可以用VBA来实现。下面的VBA代码可以在工作簿中插入一个新工作表,并在其中列出指定工作表中的所有公式、公式所在单元格及其值。使用方法是将VBA代码放入标准模块中,选择一个工作表,然后执行代码。 Sub ListFormulas() Dim FormulaCells As Range, Cell As Range Dim FormulaShee...
如果要用出生日期来计算年龄,可以用自定义函数来完成。在VBA编辑器中单击菜单插入模块,并将下面的代码放入其中,以下两段代码都是按虚岁计算的,任选一种即可。 方法一: Function Age(BirthDate As Date) Select Case Month(Date) Case Is Month(BirthDate) Age = Year(Date) - Year(BirthDate) Case Is = Month(BirthD...
如果Excel表格中的某个区域有许多文本格式的邮件地址需要添加链接,用手工的方式非常繁琐。可以使用下面的VBA代码来快速添加链接,假设该区域为F2:F18。 Sub ConvertToEmail() Dim convertRng As Range Set convertRng = Range(F2:F18) Dim rng As Range For Each rng In convertRng If rng.Value Then ActiveSheet.Hyperl...
如果需要用VBA的方法获得某个工作簿中工作表的名称,可以使用下面的代码,其中使用了 Microsoft ActiveX Data Objects (ADO),可以将指定工作簿中的工作簿名称显示在A列中,在使用时需将代码中的工作簿名称及路径进行更改。 Sub GetSheetNames() Dim objConn As Object Dim objCat As Object Dim tbl As Object Dim iRow A...
在VBA中通过调用API函数mcisendstring,可以播放MP3格式的音乐。下面是VBA代码,我们可以将它放入模块中,方法是在VBA编辑器中单击菜单插入模块,在代码窗口中输入下列代码。 Option Explicit Public Declare Function mciSendString Lib winmm.dll Alias mciSendStringA (ByVal lpstrCommand As String, ByVal lpstrRetur...
如果我们要用VBA生成一列不重复的随机整数,可以用下面的VBA代码。本例可以在A1:A100中产生1-100的不重复随机整数。 Sub RndNumberNoRepeat() Dim TempArr1(99) As Integer, TempArr2(0 To 99, 1 To 1) As Integer Dim RndNumber As Integer, i As Integer Randomize (Timer) '初始化随机数生成器 For i = 0 To 99 '产生包...
我们制作好的excel图表有时候可能需要修改或者添加数据,其实我们不需要重新生成图表...
excel的功能非常的强大,但是我们在日常生活工作中用到的只是excel的一部分功能,其中...
这个问题非常有意思,看案例感觉是真的需要把日期的内容拆分掉,如何你理解日期在Exce...
日常办公中,常会遇到这样一个难题:如何在惨不忍赌的数据中快速提取需要的字符串?如...
如何通过不断变化的数值,得出相应的数值,这就要利用滚动条和组合框,如下面例子,通...
本文介绍excel【ActiveX控件】相关的一些知识点。Excel控件是放置于窗体上的一些图形...