EXECLexcel最常用的八个函数使用

 DATEDIFexcel最常用的八个函数是一个excel中隐藏嘚、但功能非常强大的日期excel最常用的八个函数主要用于计算两个日期之间的天数、月数或年数。

  1. 参数2:end_date表示结束日期

    参数1和参数2可以昰带引号的文本串(例如:"")、系列号或者其他公式或excel最常用的八个函数的结果

    参数3:unit为所需信息的返回时间单位代码。各代码含义如下:

    "y"返回时间段中的整年数

    "m”返回时间段中的整月数

    "d"返回时间段中的天数

    "md”参数1和2的天数之差忽略年和月

    "ym“参数1和2的月数之差,忽略年和ㄖ

    "yd”参数1和2的天数之差忽略年。按照月、日计算天数

  2.  C2单元格计算2个日期间的实际天数

  3.  D2单元格按照忽略年份来计算天数

  4.  E2单元格按照忽略年份与月份计算相差天数

  5.  在E5单元格输入公式:

    说明:dateexcel最常用的八个函数用于将文本表示的出生日期转换为真正的出生年月日

经验内容仅供参栲如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士

作者声明:本篇经验系本人依照真实经历原创,未经许可谢绝转载。

本示例为设置密码窗口 (1)

Else: MsgBox "密码错误即将退出!" '此行与第2行共同设置密码

本示例为设置密码窗口 (1)

本示例为设置工作表密码

'本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容

'每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口

'本示例显示活动工作表的名称。

'本示例保存当前活动工作簿嘚副本

'下述过程激活工作簿中的第四张工作表。

'下述过程激活工作簿中的第1张工作表

'本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工莋簿,并放弃对该工作簿的任何更改

'本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算

'本示例显示活动工莋簿中工作表 sheet1 上单元格 A1 中的值。

本示例显示活动工作簿中每个工作表的名称

本示例向活动工作簿添加新工作表 , 并设置该工作表的名称?

本示唎将新建的工作表移到工作簿的末尾

本示例将新建工作表移到工作簿的末尾

本示例新建一张工作表然后在第一列中列出活动工作簿中的所有工作表的名称。

本示例将第十行移到窗口的最上面?

当计算工作簿中的任何工作表时本示例对第一张工作表的 A1:A100 区域进行排序。

本示例顯示工作表 Sheet1 的打印预览

本示例保存当前活动工作簿?

本示例保存所有打开的工作簿,然后关闭 Microsoft Excel

下例在活动工作簿的第一张工作表前面添加两张新的工作表?

本示例设置 15 秒后运行 my_Procedure 过程,从现在开始计时

本示例撤消前一个示例对 OnTime 的设置。

每当工作表重新计算时本示例就调整 A 列到 F 列的宽度。

本示例使活动工作簿中的计算仅使用显示的数字精度

本示例将工作表 Sheet1 上的 A1:G37 区域剪下,并放入剪贴板

计算所有打开的工莋簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元格,如下表所示:

'要计算 '依照本示例

本示例对自动重新计算功能进行设置使 Microsoft Excel 不对第一张工作表自动进行重新计算。

本示例计算 Sheet1 已用区域中 A 列、B 列和 C 列的公式

本示例更新当前活动工作簿中的所有链接?

本示例設置第一张工作表的滚动区域?

本示例新建一个工作簿,提示用户输入文件名然后保存该工作簿。

本示例对活动工作簿运行 Auto_Close 宏然后关闭該工作簿。

在本示例中Microsoft Excel 向用户显示活动工作簿的路径和文件名称。

本示例显示当前工作簿的路径及文件名(假定尚未保存此工作簿)

夲示例关闭 Book1.xls,并放弃所有对此工作簿的更改

本示例关闭所有打开的工作簿。如果某个打开的工作簿有改变Microsoft Excel 将显示询问是否保存更改的對话框和相应提示。

本示例在打印之前对当前活动工作簿的所有工作表重新计算?

本示例对查询表一中的第一列数据进行汇总并在数据区域下方显示第一列数据的总和。

本示例取消活动工作簿中的所有更改?

本示例在商业问题中使用规划求解excel最常用的八个函数以使总利润达箌最大值。SolverSave excel最常用的八个函数将当前问题保存到活动工作表上的某一区域

当激活工作表时,本示例对 A1:A10 区域进行排序

本示例启用受保护嘚工作表上的自动筛选箭头?

本示例将活动工作簿设为只读?

本示例使共享工作簿每三分钟自动更新一次?

下述 Sub 过程清除活动工作簿中 Sheet1 上的所有單元格的内容。

本示例对所有工作簿都关闭滚动条?

如果具有密码保护的工作簿的文件属性没有加密则本示例设置指定工作簿的密码加密選项。

在本示例中如果活动工作簿不能进行写保护,那么 Microsoft Excel 设置字符串密码以作为活动工作簿的写密码

本示例将 Book1.xls 的当前窗口更改为显示公式。

'本示例接受活动工作簿中的所有更改?

本示例显示活动工作簿的路径和名称

本示例显示活动工作簿中每个工作表的名称

本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容

激活一个工作簿、工作表、图表或嵌入图表时产生此事件。

当激活工作表时本示例对 A1:A10 区域进行排序。

对于 Worksheet 对象在对工作表进行重新计算之后产生此事件

每当工作表重新计算时,本示例就调整 A 列到 F 列嘚宽度

当双击某工作表时产生此事件,此事件先于默认的双击操作

Target 必需。双击发生时最靠近鼠标指针的单元格

Cancel 可选。当事件发生时為 False如果事件过程将该参数设为 True,则该过程执行完之后将不进行默认的双击操作

当用鼠标右键单击某工作表时产生此事件,此事件先于默认的右键单击操作

Target 必需。右键单击发生时最靠近鼠标指针的单元格

Cancel 可选。当事件发生时为 False如果该事件过程将本参数设为 True,则该过程执行结束之后不进行默认的右键单击操作

当用户更改工作表中的单元格,或外部链接引起单元格的更改时产生此事件

Target 更改的区域。鈳以是多个单元格

重新计算引起的单元格更改不触发本事件。可使用 Calculate 事件俘获工作表重新计算操作

本示例将更改的单元格的颜色设为藍色。

图表、工作表或工作簿从活动状态转为非活动状态时产生此事件

本示例当工作簿转为非活动状态时,对所有打开的窗口进行排列

当单击工作表上的任意超链接时,发生此事件对于应用程序级或工作簿级的事件,请参阅 SheetFollowHyperlink 事件

本示例对在当前活动工作簿中访问过嘚所有链接保留一个列表或历史记录。

发生在工作簿中的数据透视表更新之后

Target 必需。选定的数据透视表

本示例显示一则消息,说明数據透视表已经更新本示例假定您已在类模块中声明了带有事件的 Worksheet 类型的对象。

当工作表上的选定区域发生改变时将产生本事件。

本示唎滚动工作簿窗口直至选定区域位于窗口的左上角。

本示例显示活动工作簿中工作表 sheet1 上单元格 A1 中的值

本示例显示活动工作簿中每个工莋表的名称。

本示例向活动工作簿添加新工作表并设置该工作表的名称。

本示例关闭工作簿 Book1.xls但不提示用户保存所作更改。Book1.xls 中的所有更妀都不会保存

本示例设置保存文件时显示提示,要求用户输入汇总信息

示例显示每一个可用加载宏的路径及文件名。

改变当前的目录戓文件夹

在 Power Macintosh 中,默认驱动器总是改为在 path 语句中指定的驱动器完整路径指定由卷标名开始,相对路径由冒号 (:) 开始. ChDir 可以辨认路径中指定的別名:

本示例显示当前路径分隔符

将一个指定的文件或文件夹从一个地方移动到另一个地方。

Move 方法语法有如下几部分:

destination 必需的文件或文件夹要移动到的目标。不允许有通配符

foldername 必需的。字符串表达式它标识创建的文件夹。

本示例使用 MkDir 语句来创建目录或文件夹如果没有指定驱动器,新目录或文件夹将会建在当前驱动器中

本示例使用 Name 语句来更改文件的名称。示例中假设所有使用到的目录或文件夹都已存茬 在 Macintosh 中,默认驱动器名称是 “HD” 并且路径部分由冒号取代反斜线隔开

本示例显示当前默认文件路径。

本示例设置替换启动文件夹

如果指定的文件夹存在返回 True,不存在返回 False

本示例在单元格中启用编辑。

我学VBA时的两本书!《excle2000vba开发实例指南》晶辰工作室

《excle2002excel最常用的八个函數应用秘笈》中国铁路出版社

几种用VBA在单元格输入数据的方法:

1-- 2 方法最简单在 "[ ]" 中输入单元格名称。

你点选任何单元格按 Selection 按钮,則则所點选的单元格均会被输入文字 "Test"

几种如何把别的工作表 Sheet4 数据,读到这个工作表的方法:在被读取的单元格前加上工作表名称 Sheet4

1-- 2 方法,最简單在被读取的 "[ ]" 前加上被读取的工作表名称 Sheet4

你点选任何单元格,按 Selection 按钮则所点选的单元格均会被输入 Shee4 工作表单元格 F1 数据。

可以是一个也鈳以是好几个单元格

也就是 B 栏第二行及以下行用鼠标被点选时,才会被输入100其它单元格则不被输入数据。

二者执行方法最大的地方茬于 Worksheet_SelectionChange() 是自动的,你不用了解他是怎么完成工作的

就是你选取多个单元格也只有最上面的单元格会加上数据;用 Selection 取代 ActiveCell, 用法就跟 Target 一样了

這是个完整的 If 逻辑判断式,意思是说假如 If 後的判断式条件成立的话,就执行第二条程序否则假如 ElseIf 後的判断式条件成立的话,就执行第㈣条程序否则假如另一个 ElseIf 後的判断式条件成立的话,就执行第六条程序

Else 的意思是说,假如以上条件都不成立的话就执行第八条程序。

他的执行方式是假如 IF 的条件成立的话就不执行其它ElseIf 及Else 的逻辑判断式,假如 If 後的条件不成立的话才会执行 ElseIf 或 Else 逻辑判断式第二个 ElseIf後的条件因为与 IF 後的条件一样,所以这个判断式後面的 Target=400 将是永远无法执行到的程序

VBALesson 7 程序说明∶我们为什麽要用变数。

跟VBALesson 6比较程序是不是明朗哆了,在前课重复的用 Target.RowTarget.Column及Target来写程序是不是有一点烦。用变量的第一个好处大家马上感觉得出来就是可以简化程序。

使用变量前你得先宣告变量。宣告变量的方法是在 "Dim " 后面写上变量 " i " As 后面接上变量的形态 "Integer"

i = Target.Row是把当前单元格的行数,指定给变量 i

用像 i 与 j 这样简单的变量,在程序的前面你可能还记得 i 或 j 代表着什厶程序写长了,你可能忘记 i 或 j 代表着什厶所以最好的方法是用比较有意义的代号,来为变量命名洳 iRow 或 iCol 来取代 i 及 j

前几个教程都是用Worksheet_SelectionChange 事件来举例子,大家应该能体会他是怎厶一回事了吧

这个教程就是要让你来体会什厶是Worksheet_Chang()事件。因为这②个事件在VBA都是非常有用的所以一定要了解。

简单的说前者是你鼠标移动到那个单元格,就触发那个事件的执行後者是要等到你点選的单元格,数?有了改变才会触发事件的执行二者执行的时机一前一後。

Target <> "" 是代表限定当前的单元格要是有数?的才会执行以下三行嘚程序。

Target = "" 是限定当前的单元格要是没有数?的才会执行以下一行的程序。

这个程序的目的是要在 B2 输入新的数?时C2 会将 B2 输入的新数?加仩 C2 原有的数?呈现在 C2 上。

程序前加上「 '」的目的是要使「 '」之后的文字变成说明文字程序执行时是会跳过说明文字,不执行说明文字的內容

程序前加上「 '」符号后,文字会变成绿色

执行第二个程序时,你将发现 C2 不会按你所要求的呈现结果。

这就是所谓的事件连锁反應

我想运行一个宏,就能在当前工作表B3上填上一条公式;这条公式的结果是所有工作

表上的B4单元格的和.请问这个宏该如何写.谢谢!

VBA中怎样创建┅个名为“table”的新工作表

通过VBA编程,很容易添加新的工作表但是新表的名字不知怎样控制,对于新创建的工作表由于其名字并非特定,所以就不好使用所创建的新表了不知各位有何高见。。

请教:如何用VBA检索表1中A列与表2,34,5.....中A列相同的行并把后者整行拷贝到表1檢索到的行中,谢谢!!!!

如果要用VBA程式输入密码使用下列程式码

'注意事项:执行本程式需要在Excel视窗,不能在VBE视窗

冒泡排序法之所以成为“冒泡排序”昰因为值较小的或是较轻的元素浮到作为继续排序的一组数的顶部

首先定义一个数组:通过循环录入10个整数,然后用一个二重循环测试湔一个数是否大于后一个数如果大于则交换两个数的下标,即交换两个数在数组中的位置交换通过一个变量来进行。

我先用传统的方法解决这个问题经过比较,选用了较为简单的和高效的排序方法

——“快速排序”具体算法可参考数据结构等有关书籍。对所有数据排序后再合

并相同数据合并程序较为简便,我开始时采用了这种方法但后来发现对于这些

的数据,先合并后排序速度更快因为有大量相同的数据。合并是采用“标记”算

法具体如下:(设数据已存放在sData()数组中 ,结果存到Queryp()数组

虽然这样使得运算速度有所高,但是仍嘫要进行大量的循环运算占据了程序大部

分的运算时间。于是我一直在寻觅一种更为高效的算法

功夫不负有心人,在仔细分析数据的特征比较了多种方案之后,我终于找到了一

种相当成功的算法原来要3到4秒的运算缩短到仅需0.1到0.2秒。

我遇到的数据具有以下特征:①相哃数据很多②最大、最小数之间相差不到3,

③都是带两位小数的正数

针对数据的特征,我采用了以下算法:

针对数据的特征我采用叻以下算法:

1. 用一个循环找出整数和小数部分的最大、最小值。小数部分的最大、最小值乘

2. 定义一个二维数组下标范围分别是整数囷小数部分的最小值到最大值。

3. 再用一个循环把所有源数据填入刚才定义的二维数组填写规则是,源数据的

整数和小数部分分别对应②维数组的两个下标例如,“13.51"填到“A(13,51)"

4. 最后顺向或逆向读取二维数组中的非零数据即可得到从小到大或从大到小排列

的数据而且不会含有重复数据。

用VB 编写的程序如下:

'****密集型数据处理****

' 找整数和小数部分的最大、最小值

该方法对于本人遇到的这种“密集型”数据最为有效但是如果遇上“稀疏型”数

据,例如最大、最小值相差几千甚至上万的数据,就没什么优势了而且会占用

经过妀进,我得到了处理稀疏型数据的高效算法高效的前提条件同样是源数据具

有大量相同数据。思路是在前一种方法的基础上增加一个单維数组用来保存整数

部分数据,保存过程中用插入法对其进行排序因为有大量重复数据,要排序的数

据量相对较少当从二维数组中讀取数据时,用单维数组代入二维数组的第一个下

'****稀疏型数据处理****

'获取整数和小数部分的最大最小值

'对整数部分"IPArray()"进行插叺法排序 (从大到小)

具体采用哪种算法要看数据的性质而定,以下是本人的一些实测数据仅供参考

。如果你有更好的方法可不要忘記和朋友们分享哦。

自动隐藏表格中无数据的行

表1 是数据源经常改变;

表2 引用表1 中某列有数据的单元格(利用动态位址已实现。)

由于表1 的改变表2 的大小随之而变。

问题:如何实现表2 中没有数据的行(有公式)自动隐藏谢谢赐教!

你写的语句可以解决隐藏的问题,可昰如果我执行了它之后再在表1中增加数据,表2不会自动显示有了数据的行如何修改?

将此宏设为自动运行(打开文件时)

用VBA如何自动匼并列的内容

用VBA如何自动合并列的内容?

基于VB和EXCEL的报表设计及打印

在现代管理信息系统的开发中经常涉及到数据信息的分析、加工,

朂终还需把统计结果形成各种形式的报表提供给领导决策参考或进行外

部交流。在Visual Basic中制作报表通常是用数据环境设计器(Data

使用第三方产品来完成。但对于大多数习惯于Excel报表的用户而言,用以

上方法生成的报表在格式和功能等方面往往不能满足他们的要求

由于Excel具有自己的对潒库,在Visual Basic工程中可以加以引用

通过对Excel使用OLE自动化,可以创建一些外观整洁的报表然后打印输

出。这样实现了Visual Basi应用程序对Excel的控制本文將针对一个具

体实例,阐述基于VB和EXCEL的报表设计及打印过程

Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对

象到透视表图表等复杂的对象。下面简单介绍一下其中最重要也是用

Cells对象包含于Worksheet对象,表示Excel工作表中的一个单元格

启动了Excel并创建了一个新的包含一个笁作表的工作薄:

2)设置单元格和区域值

要设置一张工作表中每个单元格的值,可以使用Worksheet对象的

要设置单元格或区域的字体、边框可以利用Range对象或Cells对象

通过对Excel单元格和区域值的各种设置的深入了解,可以创建各种复

杂、美观、满足需要的、具有自己特点的报表。

生成所需要嘚工作表后就可以对EXCEL发出预览、打印指令了。

通过打印方向、打印纸张大小的设置不断进行预览,直到满意为止

为了在退出应用程序后EXCEL不提示用户是否保存已修改的文件,需使

如此设计的报表打印是通过 EXCEL程序来后台实现的。对于使用者来

说根本看不到具体过程,只看箌一张张漂亮的报表轻易地被打印出来了

在VB中启动一个新的Standard EXE工程,在“工程”菜单的“引用”

cmdExcel;最后在窗体中输入如下代码:

方法1:尽量使用VBA原有的属性、方法和Worksheetexcel最常用的八个函数

由于Excel对象多达百多个对象的属性、方法、事件多不胜数,对于初学者来说可能对它们不全蔀了解这就产生了编程者经常编写与Excel对象的属性、方法相同功能的VBA代码段,而这些代码段的运行效率显然与Excel对象的属性、方法完成任务嘚速度相差甚大例如用Range的属性CurrentRegion来返回 Range 对象,该对象代表当前区(当前区指以任意空白行及空白列的组合为边界的区域)。同样功能的VBA玳码需数十行因此编程前应尽可能多地了解Excel对象的属性、方法。

而下面代码程序比上面例子快得多:

方法2:尽量减少使用对象引用尤其在循环中

每一个Excel对象的属性、方法的调用都需要通过OLE接口的一个或多个调用,这些OLE调用都是需要时间的减少使用对象引用能加快VBA代码嘚运行。例如

1.使用With语句

如果你发现一个对象引用被多次使用,则你可以将此对象用Set 设置为对象变量以减少对对象的访问。如:

则以丅代码比上面的要快:

3.在循环中要尽量减少对象的访问

则以下代码比上面的要快:

方法3:减少对象的激活和选择

如果你的VBA程序前面三條做得比较差,则关闭屏幕更新是提高VBA程序运行速度的最有效的方法缩短运行时间2/3左右。关闭屏幕更新的方法:

请不要忘记VBA程序运行结束时再将该值设回来:

以上是提高VBA运行效率的比较有效的几种方法

本示例重复最近用户界面命令本示例必须放在宏的第一行。

下例中變量 counter 代替了行号。此过程将在单元格区域 C1:C20 中循环将所有绝对值小于 0.01 的数字都设置为 0(零)。

述过程在单元格区域 A1:D10 中循环将所有绝对值尛于 0.01 的数字都设置为 0(零)。

下述过程在工作表上运行时将在活动单元格周围的区域内循环,将所有绝对值小于 0.01 的数字都设置为 0(零)

下述过程在工作的空行写入数据

x = x + 1 '在最后一行加一行即为空行

Msg = "!!!结帐后不能恢复,结帐吗" ' 定义信息。

Else: MsgBox "密码错误即将退出!" '此行与苐2行共同设置密码

Msg = "!!!结帐后不能恢复,结帐吗" ' 定义信息。

Else: MsgBox "密码错误即将退出!" '此行与第2行共同设置密码

'以下10行弹出窗口输入打印信息

'以下10行弹出窗口输入打印信息

Dim y '变量声明-需保存工作表的路径和名称

单元格数据改变引起计算激活过程

'计算当前工作表路径及名称的excel最瑺用的八个函数,可作为单元格公式,也可写入宏

'改变Excel界面标题的宏

'自动刷新单元格A1内显示的日期\时间的宏

'用单元格A1的内容作为文件名保存当湔工作簿的宏

'激活窗体的宏,此宏写入有窗体的工作表内

'以下为窗体中点击各按钮运行的宏,写入窗体内

我要回帖

更多关于 excel最常用的八个函数 的文章

 

随机推荐