当前位置: 首页 > 图文教程 > 工具软件 > 办公软件 > 关于Excel宏的小窍门

办公软件
源文件有改动 需刷新已导入Excel中的数据
不让Excel图表随源数据改变而改变
实时更新Excel文档外部数据源的数据
实现Excel动态链接外部数据库
从SharePoint列表往Excel导入数据
使用向导将数据从文本文件导入Excel中
Excel和Access间复制、导入和导出数据
Excel工作簿连接(导入)外部数据的方法
巧用宏快速合并200个Excel工作簿
Publisher 2007排版实例 模拟一张火车票
挽救文件 为你的WPS文件上个保险
在线版“PowerPoint”,Google演示文稿初体验
WPS表格提取身份证详细信息
巧用WPS表格制作倒计时
Word 2007自选图形操作技巧三则
Word 2007在文档中插入半页稿纸的小技巧
WPS文字插入表格简单实用技巧
关于Office文档保存的几点小常识
Office文档打印成为TIFF图形文件的步骤
巧用宏随意提取Excel单元格的批注内容

办公软件 中的 关于Excel宏的小窍门


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-03   浏览: 334 ::
收藏到网摘: n/a

 你可能曾经做过很多漂亮有趣的Excel文档,但我敢打赌你还希望为这些文档再添加些更酷的效果画龙点睛一下。在本文中我将为你介绍一些关于Excel宏的小窍门,希望能助你一臂之力。  

  首先在Excel中键入ALT+F11打开VBA编辑器;在“插入”菜单中,选择“用户窗体”;在窗口编辑栏里拖住对话框的右下角,把窗体拉大;最后的大小就将是咱们自定义的启动画面的大小了。  

  接下来,将“工具箱”里那个大大的“A”字图标拖拽到你的窗体上;鼠标点住出现的文本框的一角,将它拉大,将框内文字替换为之后想要显示的标题内容即可。如果此时VBA编辑器里并没有显示控件属性栏,请按F4将其调出,这样就可以通过属性栏中的字体一项更改标题字体。这里默认的字体是宋体,你也可以点击它右边画着“…”的小方框,在弹出的对话框中重新设置。本文例子里采用的字体是Arial Black Regular,72点。接着将属性“TextAlign”一栏调整为“fmTextAlignCenter”,选择属性“ForeColor” “按钮文本” “调色板”,在其中选择你喜欢的标题颜色。

 

为Office Excel文档添加启动画面

 

  这里需要注意一件事,一个Label文本框内只能有一种字体;所以如果还想在弹出框中建立副标题,就还需要在窗体中再添加一个Label文本框才行。添加完填好文字,设置方法同之前那个Label完全相同。  

  下面我们要为弹出的这个对话框添加背景颜色:首先用鼠标在窗体内没有其他控件的地方点一下,在属性栏选择“BackColor” “调色板”,选择你中意的颜色即可。

 

为Office Excel文档添加启动画面

 

  你这时可能也注意到了窗体的左上角显示着UserForm1。这肯定不是我们希望在它弹出时显示的东西。我们需要在属性栏内修改它。首先将最上面“名称”一栏更改为“Intro”,然后选择“Caption”,将后面的“UserForm1”更改为你喜欢的文字即可(本例中使用的是Intro)。

 

为Office Excel文档添加启动画面

 

  再添加一个Label,这个Label里面我们可以使用与前一个不同的字体。   

  接下来的界面设计阶段只需要我们摆一摆几个Label的位置即可。然后双击窗体(也就是刚才那个UserForm1),在弹出的代码编辑器里面,选择右上角下拉菜单中的“Initialize”;在代码窗口内“Private Sub UserForm_Initialize()”和“End Sub”中间添加如下代码:

  Appliation.Ontime Now + TimeValue(“00:00:04”),“ClearForm”

  这个宏可以用来控制标题对话框显示时间。在这个例子里,我将其设置为4秒钟。当然你也可以将00:00:04改成任何你想让启动画面停留的时间。

 

为Office Excel文档添加启动画面

 

  选择VBA插入菜单中的“模块”。并在弹出的代码编辑框内填入下面代码:  

  Sub ClearForm()

  Unload Intro

  End Sub  

  这段代码中的ClearForm函数在对话框显示4秒后卸载掉该窗体。代码中的“Intro”就是刚才编辑的窗体名称(还记得之前咱们已经将窗体名称更改为“Intro”了吗?)。  

  最后在工程资源管理器那里点开“ThisWorkBook”;如果你的VBA没有显示这个管理器,可以用CTRL+R将它调出;接着在弹出的代码编辑器里面输入:  

  Private Sub Workbook_Open()

  Intro.Show

  End Sub  

  按下ALT+F11返回到原来的Excel工作簿当中;保存文件。如果是07版的Excel,请将文件后缀保存为.xlsm,这样打开该文件时将会自动运行文件中定义的宏。如果你按照前面所述一步步完成,下次你再打开这个文件,便会见到一个只停留4秒的启动框。

 单元格的巧妙替换

  我们假设遥远的地方有个国家,这个国家的电话号码分机时常在变,而你又是那个维护电话黄页的小职员。如果让你老老实实地一个个去将所有号码改正过来,你肯定会叫苦不迭。好在咱们现在有了Excel,巧妙运用它自带的一些函数,可以方便地帮你解决掉这个问题。  

  首先我们假设所有开头为0191局的电话都将改为0307局。先设置A2,B2的单元格的显示格式,让其可以显示出数值最前面的0。在A2中输入“0191234567”,在B2中输入“=SUBSTITUTE
2,191,307)”  

  这样B2格便会显示“0307234567”。这里的SUBSTITUE函数包含三个参数,分别是:需要做替换的字符串,要被替换的部分,和用来替换的部分。  

  Excel还支持多种搜索替换功能。假如我们需要将TelNum这个栏里面的电话号码的0191部分都替换成0307,我们只需在旁边空列的单元格中键入“=IF(LEFT(telnum,4)=“0191”,SUBSTITUE(telnum“0191”,“0307”),“ ”)”。  

  点击单元格,向下拖拽这个单元格的右下角将公式向下复制。这样只要旁边的列中包含0191这个字符串,在新的这一列中就会将它改为0307并显示出来,同时将原来那个单元格清空。  

  如果你的字符串中多次出现某个子字符串,你还可以为SUBSTITUE函数指定替换其中的哪一个子字符串。我们举个例子,假如A2此时显示“中国北京2000”,在B2中键入“=SUBSTITUE(A2,“0”,“8”,3)”。  

  这样B2中将会显示“中国北京2008”。这个例子同第一个例子大部分均相同,唯一不同在于后面第四个参数“3”。我们这里正是用这个参数来指示要替换第几个重复出现的字符。  

  在Excel中还提供了一个类似的REPLACE函数。这里举两个例子帮助大家熟悉它。  

  首先假设我们在A2中键入了一串信用卡号码:5123 4567 8901 2345。我们想在B2中显示这串号码,但为了安全起见需要将最后四位以*替换掉。这时就可以用REPLACE函数就可以派上用场。只需要在B2中键入“=REPLACE(A2,12,4,“****”)”,B2中便会显示“512345678901****”。在此处,函数中的第二个参数给出了字符替换起始位,第三个参数给定替换个数,最后那个参数给出替换的内容。如果你希望遮挡的不是后四位而是前四位,可以在B2中填入“=REPLACE(A2,1,12,“**** **** ****”)”,B2将显示“**** **** **** 2345”。  

  如果你只想提取字符串中的某几位,还可以利用上下面几个函数。这里举几个例子,帮你熟悉它们。假设A2里面显示的是London W1T7RJ。如果你在B2中键入“=LEFT(A2,6)”,单元格将显示城市名;如果在C2中键入“=RIGHT(A2,7)”,单元格内将会显示后面的邮编。  

  如果你从网上粘贴下来的字符串内碰巧出现了几个多余的空格。你可以用TRIM函数将这些多出来的空格去掉。假设A2中放的就是这样一个字符串,在B2中键入“TRIM(A2)”便可得到修改好的字符串书写的代价。