当前位置:主页 > Office办公 > Excel专区 > Excel函数

最新发布

excel 如何快速从身份证号单独提取出生年月日方法
excel 如何快速从身份证号单独提取出生年月日方法

在一份Excel表格中,里面有一些人员的身份证号码,想要从身份证号码中单独提取人员的出生日期,即出生年月日,如何快速提取?今天我们就一起举个例子说明。以上表格是关于员工的资料,包含员工的姓名和身份证号,现要从B列的身份证号提取员工的出生日期,即出生年月日放到C列。方法一:利用数据分列法。步骤1、选取B列,也就是身份证号所在区域,单击菜单的[数据]-[分列];步骤2、在弹出的[文本分列向导-步骤之1]对话框中,选择[固定宽度],再点击[下一步];

784 次浏览
excel VBA 操作文件的主要方法 利用VBA文件处理语句来处理文件
excel VBA 操作文件的主要方法 利用VBA文件处理语句来处理文件

VBA包含了许多用于文件操作的语句和函数,可以满足绝大多数情况下的文件操作要求。下面我们按照操作目的进行一 一介绍。(一)文件处理1.Name 语句语法:Name oldpathname As newpathname功能:重命名一个文件、目录、或文件夹,移动一个文件。说明:在一个已打开的文件上使用 Name,将会产生错误。进行文件操作时,一定要注意错误处理。示例: On Error Resume Next '错误处理 Name "f:\TEST.xls" As "f:\TEST123.xls" '重命名 Name "f:\TEST.xls" As "f:\dll\TEST.xls" '移动文件 Name "f:\TEST.xls" As "d:\TEST123.xls" '跨驱动器移动并重命名文件注意:Name不能移动一个目录或文件夹。2、FileCopy 语句语法:FileCopy source, destination功能:复制一个文件。

574 次浏览
excel VBA 操作文件的主要方法 利用FileSystemObject对象来处理文件
excel VBA 操作文件的主要方法 利用FileSystemObject对象来处理文件

FileSystemObject对象模型,是微软提供的专门用来访问计算机文件系统的,具有大量的属性、方法和事件。其使用面向对象的“object.method”语法来处理文件夹和文件,使用起来十分方便(需Office 2000以后版本)。FileSystemObject并不是VBA的一部分,它是以一个COM组件的形式提供的。因此,要使用先要创建FileSystemObject对象。FileSystemObject对象模型包含了下面的对象和集合:·FileSystemObject 主对象,包含用来创建、删除和获得有关信息,以及用来操作驱动器、文件夹和文件的方法和属性。·Drive 对象,包含用来获得信息的方法和属性,这些信息是关于连接在系统上的驱动器的,如有多少可用空间等。驱动器不一定是硬盘,也可以是CD-ROM、U盘甚至是通过网络在逻辑上连接的硬盘(如公司里部门共享的服务器网络硬盘)。·Drives 集合,提供驱动器的列表,这些驱动器以实物或在逻辑上与系统相连接。Drives集合包括所有驱动器,与类型无关。·File 对象,包含用来创建、删除或移动文件的方法和属性。·Files 集合,提供包含在文件夹内的所有文件的列表。·Folder 对象,包含用来创建、删除或移动文件夹的方法和属性。·Folders 集合,提供包含在文件夹内的所有文件夹的列表。·TextStream 对象,用来读写文本文件。

453 次浏览
excel VBA 操作文件的主要方法 利用API函数来处理文件
excel VBA 操作文件的主要方法 利用API函数来处理文件

为了普及一下API,展示一下API的魅力,最后向大家介绍一下如何利用API函数来处理文件。另一方面也是本人对API情有独钟,为她做一下广告,呵呵。大家对API的强大也是有所耳闻了,在文件操作方面,API自然毫不逊色。 说明:为了文章简洁,我们先给出API函数的名称及功能,其完整的声明及常数就不再一一细诉,只在示例中给出其完整用法。  (一)处理驱动器及目录下面是windows中提供的对于目录进行操作的API函数及其功能:CreateDirectory,CreateDirectoryEx 创建一个新目录 GetCurrentDirectory 在一个缓冲区中装载当前目录 GetDiskFreeSpace,GetDiskFreeSpaceEx 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 GetDriveType 判断一个磁盘驱动器的类型 GetFullPathName 获取指定文件的完整路径名 GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 GetSystemDirectory 这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中, 包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也 可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中, 往往需要管理员权限才可对这个目录进行写操作 GetTempPath 获取为临时文件指定的路径 GetVolumeInformation 获取与一个磁盘卷有关的信息 GetWindowsDirectory 这个函数能获取Windows目录的完整路径名。在这个目录里, 保存了大多数windows应用程序文件及初始化文件 RemoveDirectory 删除指定目录 SetCurrentDirectory 设置当前目录 SetVolumeLabel 设置一个磁盘的卷标(Label)下面通过几个例子来详细的了解一下其中主要的几个函数及其用法:1、GetLogicalDrives作用:判断系统中存在哪些逻辑驱动器字母声明:Declare Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long说明:此函数的返回值类型为Long,这个结构中的二进制位标志着存在哪些驱动器。其中,位0设为1表示驱动器A:存在于系统中;位1设为1表示存在B:驱动器;以次类推

439 次浏览
Excel非常重要的三个统计函数,你真的会用吗?
Excel非常重要的三个统计函数,你真的会用吗?

Excel不仅仅用来制作表格,更能体现它强大功能的是对数据的统计、分析等再加工操作。今天就来分享一下Excel非常重要的三个统计函数。我们以员工销售业绩统计表为例来说明!1、COUNTIF函数这是最常用、最容易理解的一种方法,我们可以用它来统计上半年每个员工有几个月的销售额超过了6万的次数。在K2单元格中输入公式:=countif(D2:I2,">60000"),然后向下拖动或双击K2单元格的句柄(单元格右下角小黑点)。2、DCOUNT函数这个函数不常用,但是用来统计各数字段之间的个数,效果非常棒。在空白处自己写出条件:总销售额大于40万小于50万,图中L1:M2,在D17单元格中输入公式:=DCOUNT(A1:J16,"总销售额",L1:M2)即可统计出满足条件的个数。注意这个函数也可以用Dcounta来统计,效果是一样的。3、FREQUENCY函数这是专门用来统计某个数据的频率分布函数。在L列写出各总销售额分割段,M列用来统计人数,在M2中输入公式:=FREQUENCY($J$2:$J$16,L2:L6),并按下“Ctrl+Shift+Enter”后注意观察编辑栏中公式是否加了一组大括号"{}",然后向下填充,在N列中对分割段进行说明。

443 次浏览
Excel中如何使用Rank()函数实现自动排序
Excel中如何使用Rank()函数实现自动排序

在excel中,排序是经常用到的操作。通常情况下,我们在做完表格数据后,会通过菜单中的“数据”→“排序”进行升序或降序排序。但有时候在需要不改变原有序号排列的情况下,按排序关键字在排名列中标出每个人的名次,这时候可以用Rank()函数来实现。菜单操作:数据→排序,然后选择主要关键字、排序依据、次序。Rank()函数是指定某个特定的数字在一列数字中的排位,其语法格式为:=Rank(number,ref,order)其中number为待排序的数字;ref为一列数字;order用于指定排位的方式,如果为0或忽略,降序;非零值,升序。在k2单元格中输入公式:=RANK(J2,$J$2:$J$16,1),然后向下填充,即可对所有员工进行一个总销售额的排名。用rank()函数进行排序后,其中一到六月份的数据发送变化时,其本人的总销售额排名会自动发送变化。但是也有个问题,如何自动升序排名,比如当第二名的成绩变成第一名时,这个员工自动跳到最前面一行,即以(1、2、3、4、……这样的顺序排名),请大侠们留言!!

3343 次浏览
excel 如何用 ROWS 函数计算单元格行数
excel 如何用 ROWS 函数计算单元格行数

rows是计算一个引用或数组的行数的函数,那么如何在Excel表格中使用该函数计算单元格行数呢?首先,打开我们要计算行数的表格,选择一个计算行数的单元格,点击上方菜单栏中的【公式】:第二步,点击下方的【查找与应用】,在其界面中找到ROES,点击【ROWS】:第三步,在函数参数界面,输入我们要计算的单元格的区域,下图以【A1:D5】为例,然后点击【确定】:如下图所示,A1到D5区域的行数就显示出来啦:

excel VBA 中 Windows 剪切板的操作 基础教程
excel VBA 中 Windows 剪切板的操作 基础教程

一、剪贴板概述   首先,讨论一下剪贴板是什么   Windows的帮助文件中对剪贴板的描述是这样的:剪贴板是从一个地方复制或移动并打算在其他地方使用的信息的临时存储区域。可以选择文本或图形,然后使用“剪切”或“复制”命令将所选内容移动到剪贴板,在使用“粘贴”命令将该内容插入到其他地方之前,它会一直存储在剪贴板中。例如,您可能要复制网站上的一部分文本,然后将其粘贴到电子邮件中。大多数 Windows 程序中都可以使用剪贴板。   对于经常使用Ctrl+C/X、Ctrl+V的Windows用户来说,这个解释是非常易懂并且符合人们感观上的认识的。   既然我们今天讨论的话题是如何在VBA程序中通过API调用剪贴板,那就先看看微软MSDN中对于剪贴板的定义吧:剪贴板是一组用于在多个应用程序之间交换数据的函数和消息(原文:The clipboard is a set of functions and messages that enable applications to transfer data)。   呵呵,是不是有些晕?没关系,因为这句话是针对C/C++程序员给出的说明,我们仍然可以按习惯上的理解把它当做一个对象(使用过VB6的同志们可能更容易理解,因为VB6中确实有一个名字叫ClipBoard的对象,它其实是VB对windows的剪贴板API函数封装后产生的真正的对象)。   然后,再来看看这个对象有什么特点,又是如何工作的呢?概括来说,剪贴板有以下的特性(这是我个人总结的,不一定正确或精确,也不一定全面):◾公开性 剪贴板中的数据存放在全局内存中,因此大部分的windows应用程序都可以访问其中的数据,在遵守相关API函数约定的前提下,应用程序可以自由地打开剪贴板(OpenClipboard),读取剪贴板内的数据(GetClipboardData)、或者清空剪贴板(EmptyClipboard)、然后设置剪贴板内的数据(SetClipboardData),最后关闭剪贴板(CloseClipboard);◾独占性 既然剪贴板是公开的,那么多个程序同时访问必然会导致冲突,比如数据互相覆盖。因此,Windows规定应用程序对剪贴板的访问是独占性的,当一个应用程序使用OpenClipboard打开剪贴板之后,其他程序 就不可以再访问剪贴板,直至前一程序使用CloseClipboard关闭剪贴板 。通常我们使用剪贴板的时候不会感觉受其他程序的影响,这是因为剪贴板内的数据操作都是在内存中进行的,速度非常快,对于特大块的数据,应用程序还可以选择延时处理(Delayed Rendering)机制以保证速度。但是,我们在对剪贴板编程的时候要注意以下两点:1)每次使用完剪贴板之后一定要记得使用CloseClipBoard关闭 它;2)在OpenClipboard和CloseClipboard之间不要放置耗时很长的代码,以免影响其他程序正常工作。 设置剪贴板内数据的应用程序窗口被称为剪贴板数据拥有者(ClipboardOwner),可以通过GetClipboardOwner函数获得它的句柄。反过来说,如果一个应用程序想向剪贴板中放入数据,需要先成为ClipboardOwner。程序要成为ClipboardOwner需要先将自己的句柄传给OpenClipboard函数,如果剪贴板中已经有数据存在,还需要先调用EmptyClipboard;◾多元性 剪贴板中可以同时存放多种格式的数据,各自放在全局内存的不同位置 ;剪贴板中的数据有标准格式/预定义格式的,如文本、位图、Wav声音……;也有非标准格式/用户自定义格式,比如word中的域和公式、Excel中的图表◾可检索性 对于每种在剪贴板中存放过的格式,Windows都会给它分配一个独特的长整型编号,通过这个编号可以知道对应的数据格式的名称(GetClipboardFormatName),或者 查询对应的数据在剪贴板中是否存在(IsClipBoardFormatAvailable),如果存在,还可以通过这个编号找到对应的数据在内存中存放的位置(GetClipboardData); 对于标准格式,这个编号是固定的,可以通过VB6自带的APIViewer查询以CF_开头的常量得到,比如: Public Const CF_TEXT = 1 Public Const CF_BITMAP = 2 Public Const CF_METAFILEPICT = 3 Public Const CF_SYLK = 4 …… 对于非标准格式,这个编号由提供此格式数据的应用程序给此格式定义一个名称,然后将此名称传递给RegisterClipboardFormat函数,如果此名称已经存在,函数将返回此名称对应的编号,如果此名称不存在,函数将返回一个之前未使用的编号,在系统关机重启之前,这个名称和编号可以一直使用下去。◾可监视性有一组特别的窗口可以持续监视剪贴板内的数据变化,这组窗口被称作剪贴板观察程序(ClipboardViewer),由它们构成的这个小圈子叫作剪贴板观察程序链ClipBoardViewerChain,每当剪贴板内数据发生变化时,windows将向消息链中的第一个窗口发送一个WM_DRAWCLIPBOARD消息,再由它转发给第二个……直至消息到达消息链中的最后一个窗口,同样,当消息链中的成员发生变化时,每个窗口都会收到一个WM_CHANGECBCHAIN消息; 通过SetClipboardViewer函数,应用程序可以将自己的窗口句柄告诉windows,从而注册成为剪贴板观察程序链中的一员;通过ChangeClipboardChain函数,应用程序可以退出剪贴板观察程序链而不影响它后面的窗口继续接收相关消息。 希望以上文字能对大家重新认识剪贴板能够有所帮助。休息一会儿,我们再讨论剪贴板在Office VBA中的用途。二、剪贴板在Excel VBA中的用途   只要进行了正确的API声明,我们在VBA中也可以对剪贴板的进行操作,以它为媒介,我们可以访问到通过VBA难以接触到的数据,从而给我们的VBA或Office应用程序增加一些新奇和实用的功能。这里全是以Excel为例,在其他Office程序中原理一样。   下面先看三个实例,它们分别演示了剪贴板数据的读取、写入和监视。示例1:ShapeToPicture.rar(点击下载)说明:这个代码演示了如何在窗体中浏览工作簿中所有Shape对象,并且提供了按各种格式保存的功能。完成这个程序,并不能说明本人对各种图像格式有多深的认识,真正的幕后英雄是Excel,是它在我们选中工作表中的Shape对象并按下Ctrl+C后的1/1024柱香的时间内把这个Shape换成了bmp, jpg,gif, png,emf等各种格式并放在了剪贴板中,我们所做的只是把这些数据从剪贴板中取出并简单进行了加工,不过效果已经很理想了,下次再有人跟你说用把工作簿另存为网页的方法可以取出xls中所有的图形时,你就可以有得吹嘘了。说正题,把这个代码稍作修改,就可以做出一个用右键菜单导出当前选中图形的加载宏。我以前做过一个,不过代码不如现在这个严谨和通用。 示例2: MSFlexGrid.rar (点击下载)说明:这个代码演示的是向放入数据,在userform窗体上的FlexGrid中选择一个单元格区域,然后通过右键或快捷键可以复制和剪切数据,回到Excel工作表后可直接粘贴。当然,跟华丽的Excel比起来,这个就有点槑了,不过这至少提供了一种在窗体上的表格和Excel工作表之间交换数据的思路,这种操作方式也更符合大多数用户的习惯。示例3: clipboardviewer.rar (点击下载) 这是一个监控剪贴板数据变化的示例,很简单的一个功能:当剪贴板内数据发生变化时,在窗体左侧的列表中显示当前剪贴板内可用的数据格式,如果里面有文本,则将文本显示在TextBox中,像迅雷的监视剪贴板大致也是这个原理。   看完之后,你可能对Windows剪贴板产生了一些兴趣。当然,剪贴板在VBA中的使用不止于此,套用一句广告词,哪啥来着?心有多大,舞台就有多大。接下来,剪贴板之旅正式开始,我们理论实践相结合,先逐个认识相关的API函数,最后让他们一起协作帮我们完成某个目的。三、如何操作剪贴板内的数据 1.读取剪贴板内的数据,这一节主要说说几个相关的剪贴板函数和内存函数   要读取剪贴板,首先要打开剪贴板,用OpenClipboard函数,格式如下:如果OpenclipBoardData函数调用成功,我们接下来就可以用GetClipboardData读取里面的数据了。来看看GetClipboardData函数的样子。前面说过,剪贴板内可以同时存放多种格式的数据。Windows不会一次性地把这些数据全交到你手中,它一次只会给你一种格式的数据,只要你向它提供了这种数据格式对应的编码,也就是括号内的长整型变量wFormat。关于剪贴板格式的话题,我们在后面的相关函数中单独讨论。目前你可以把它想象为股票代码,要从股票软件那里查询股票行情,要向软件提供这个代码,你提供的代码不同,软件返回的数据也不一样。   可能很多人要问,如果调用成功,返回的这个句柄代表什么,又怎么利用呢?按照小fisher的观察,至少有下面三种情况: 1.如果这个格式对应的是GDI对象(比如CF_BITMAP, CF_METAFILEPICT,CF_PALETTE,CF_PENDATA等),这个返回值就是这个GDI对象的句柄,对于这个句柄,我们可以使用相关的GDI函数创建一个它的副本,然后使用其他GDI函数操作它就可以了。关于GDI的话题,要细讲起来用的篇幅恐怕比剪贴板还要多,在后面的小节“利用从剪贴板中取出的数据”里对于用到的几个GDI函数会给出一些简单的说明,感兴趣的同志们也可以从网上或MSDN中查找相关的说明,这里我推荐一个英文的教程,里面讲解得非常细致和系统,网址是http://edais.mvps.org/Tutorials/GDI/DC/index.html; 2.如果是其他格式,这通常是一个内存对象的句柄; 3.应该还有一些特殊情况(比如对于剪贴板内的DataObject格式,这个返回值指向的是一个长整型数字,估计是个内存指针类型),由于我自己也没研究,所以目前不讨论。

973 次浏览
excel 定位最后一行的多种方法,使用技巧、快捷键、VBA代码来定位到最后一行
excel 定位最后一行的多种方法,使用技巧、快捷键、VBA代码来定位到最后一行

如果在excel工作表中数据很多,需要快速定位最后一行,有什么可以实现呢?  比如EXCEL可用的表格有65536行,实际有6000多行是填充了数据的,如何快速定位最后一行。第一,使用技巧完成  按下快捷键:ctrl +↓,或者Ctrl+end,以及双击选取单元格之下框线(对不连续区域不适用)。  另外,在最后一行双击又可以定位到第一行。双击单元格的中间可以编辑单元格,双击单元格右下角可以进行填充。第二,使用VBA代码完成  下面这段代码能定位选择最后一行:Sub 定位最后一行() Range("a65536").End(xlUp).EntireRow.Select End Sub  如果需要定位选择最后一行数据行的下一行,可以使用下面的代码:Sub 定位最后一行的下一行() Range("a65536").End(xlUp).Offset(1, 0).EntireRow.Select End Sub

2064 次浏览
Excel 名称(Name)及其 VBA 中的使用详解教程
Excel 名称(Name)及其 VBA 中的使用详解教程

在 Excel 的中名称是一个使用很频繁的东西,通过在 Excel 定义和使用名称,可以更好的管理工作表数据,方便地编写公式和设置表格。正如在工作表中定义和使用名称一样,在VBA中也可以创建和使用名称,并能利用名称处理工作表中的数据,这里我们就来具体的讲一讲Excel 名称及其 VBA 中的使用。所谓名称就是给单元格引用、常量、公式或者表格取一个有意义的名字,便于你了解和记忆这些对象,比如像下面的这些例子所表现的那样:  Excel 的可以创建和使用名称可以分为以下两种类型已定义的名称:  代表单元格、单元格区域、公式或常量值的名称。您可以创建自己的已定义名称,有时 Excel 也会为您创建已定义名称,例如当您设置打印区域时。表名称:  Excel 中表格的名称,每次插入 Excel 表时,Excel 都会创建如 表1、表2 等默认 Excel 表名称,如果有需要您也可以修改这些默认名称。名称的适用范围可以分为工作表级和工作簿级,其主要的区别如下:工作表级(局部名称):  此类名称的适用范围为定义其的工作表。比如在 Sheet1 中定义一个名称叫 "销售",这个名称在没有限定的情况下只能在 Sheet1 中被识别,如果要在其他的表格中使用这个名称,就必须在名称前加上定义工作表的名字来限定他。比如:Sheet1!销售工作簿级(全局名称):  此类名称的适用范围为工作簿。工作簿中的所有工作表而言都可以识别并使用这个名称。但其他的工作簿是不能识别和使用的。

2610 次浏览
共计5788条记录 上一页 1.. 547 548 549 550 551 552 553 ..579 下一页