测量VBA EXCEL函数集
- 格式:docx
- 大小:13.60 KB
- 文档页数:1
电子表格Excel VBA测量程序分享2012-2-13 11:16阅读(6977)简介:Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,Visual Basic forApplications(VBA)是一种VisualBasic的一种宏语言,是基于Visual Basic for Windows 发展而来的,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。
也可说是一种应用程式视觉化的Basic Script,VBA的使用可以达成执行特定功能或是重复性高的操作。
适用:Microsoft Office Excel办公软件NO.1:曲线坐标计算程序VBA说明:本程序适用于Office Excel运行,属于多交点坐标正算、反算程序,包括:多交点曲线要素、坐标正算、坐标反算、放样计算、竖曲线高程等。
下载:曲线坐标计算程序VBA 1.0(单交点坐标正算)曲线坐标计算程序VBA 2.0(单交点坐标正算、反算)曲线坐标计算程序VBA 2.3(单交点坐标正算、反算、自动化)曲线坐标计算程序VBA 3.0(多交点坐标正算、反算)曲线坐标计算程序VBA 4.0~4.9(交点法、线元法、竖曲线等一体化程序)2012-11-15 更新测量坐标计算程序 V5(交点法、线元法、直线、竖曲线等多种计算程序)2013-07-27 更新NO.2:测量计算程序集成VBA 1.6说明:本程序适用于Office Excel运行,通过VBA编写的测量集成程序,属于单交点曲线,包括:坐标正算、坐标反算、坐标放样、角度转弧度、任意切线方位角、坐标展点、边角后方交会、坐标面积计算、无定向平差、水准平差、竖曲线高程、导线观测手薄、线元法坐标正算、线元法坐标反算、直线坐标正反算等。
下载:点击下载NO.3:线元法坐标正反算VBA说明:本程序适用于Office Excel运行,是线元法坐标正算、反算一体程序,可以计算多线元数据,适用性广(包括:复曲线、S型曲线、匝道)等。
教你如何通过ExcelVBA编写测量坐标计算程序(入门篇)摘要:认识VBA、理解VBA,并利用Office Excel VBA编写测量坐标计算程序。
关键词:Excel VBA 程序坐标编写了解:VBA是什么?简单的说就是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。
可以用E xcel的宏语言来使E xcel自动化运行等……Microsoft让它开发出来的应用程序共享一种通用的自动化语言——Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言Visual Basic的子集,事实上VBA是VB应用程序的版本,尽管存在有些不同VBA和VB在结构上仍然十分相似。
如果你已经了解VB会发现学习VBA非常快。
相应的学完VBA会给学习VB打下坚实的基础。
理由:选择Excel VBA编程的理由是因为它的计算功能非常强大,是现今任何编程计算器无法逾越的。
它运用范围广,计算速度快,计算精度高,合理化显示等。
或许很多测量人员对Excel VBA还有些陌生,主要是大家寄托于计算器、电脑、手机PDA等系列软件使用。
Excel VBA对于大多数测量人员而没有系统学过计算机语言程序设计的人群来讲有一定含糊,不过只要有基本数学知识、测量常识和逻辑理解的人,都能通过Excel VBA编写设计出称心如意的测量程序。
目标:基于Excel VBA的测量坐标计算程序的设计目标是将繁琐计算过程转入到计算机中,利用程序语言的重复性原理,在计算机中可将坐标计算得出更精确的结果,使坐标计算更加可靠。
最终目标是让用户可以通过Excel VBA自行完成坐标计算程序设计。
认识:学习VBA到底需要什么基础和了解些什么?学习VBA需要认识英文字母、一般的单词(如:函数所用的过程)、数学基础知识、测量常识、逻辑性思维即可。
在VBA中需要了解VBA的过程、变量、属性、方法、事件、语句等。
VBA实现Excel的数据差异与变动监测在日常工作中,我们经常需要对Excel表格中的数据进行差异和变动监测。
通过VBA(Visual Basic for Applications)的编程语言,我们可以快速、准确地实现这一功能。
本文将向您介绍如何利用VBA实现Excel的数据差异与变动监测。
首先,我们需要打开Excel表格并新建一个宏。
按下Alt+F11,进入Visual Basic Editor界面,然后选择插入(Insert),再选择模块(Module),新建一个宏。
在新建的宏中,我们可以使用VBA编程语言编写代码来实现差异与变动监测。
以下是一个示例代码,您可以根据您的实际需求进行相应修改。
```vbaSub 数据差异与变动监测()Dim ws1 As Worksheet, ws2 As WorksheetDim rng1 As Range, rng2 As Range, diffRange As RangeDim cel1 As Range, cel2 As RangeDim diffCount As Integer' Set the worksheets that contain the dataSet ws1 = ThisWorkbook.Sheets("Sheet1")Set ws2 = ThisWorkbook.Sheets("Sheet2")' Set the ranges that contain the dataSet rng1 = ws1.Range("A1:F10")Set rng2 = ws2.Range("A1:F10")' Clear any previous highlightingrng2.Interior.Pattern = xlNonediffCount = 0' Compare each cell in the rangesFor Each cel1 In rng1Set cel2 = rng2.Cells(cel1.Row, cel1.Column)' Check for differencesIf cel1.Value <> cel2.Value ThenSet diffRange = cel2' Highlight the different cellsdiffRange.Interior.Color = RGB(255, 0, 0)diffCount = diffCount + 1End IfNext cel1MsgBox "发现 " & diffCount & " 处差异和变动"End Sub```在以上示例代码中,我们通过声明和设置变量来标识需要比较的数据范围和差异。
vba查询函数VBA(Visual Basic for Applications)是一种被广泛使用的编程语言,它可以在Microsoft Office软件(如Excel、Word、PowerPoint)中使用。
在Excel中,VBA可以帮助用户进行数据分析、自动化操作等,配合查询函数使用,可以更有效地处理数据。
VBA查询函数是一种可以在Excel中使用的函数,它可以帮助用户快速查找和筛选数据。
查询函数通常用于条件查询和多条件查询,以帮助用户更快地获得所需信息。
下面我们来介绍一些常用的VBA查询函数及应用。
1. VLOOKUP函数VLOOKUP函数是一种常用的查询函数,它用于按行查找指定值,并返回与该值相关的数据。
该函数的函数原型为:=VLOOKUP(查找值,查找范围,返回列数[,是否准确匹配])其中,查找值指需要查找的值;查找范围是指查找的区域;返回列数是指要返回的数据在查找范围中的列数;是否准确匹配是一个可选项,用于控制是否进行精确匹配。
下面是一个例子:=VLOOKUP(A1,Sheet1!A1:D10,4,0)这个函数将在Sheet1的A1:D10范围内查找A1单元格中的值,并返回该值所在行的第四列数据。
3. MATCH函数MATCH函数用于查找指定值在查找范围中的位置,并返回其在查找范围中的相对位置。
该函数的函数原型为:=MATCH(查找值,查找范围[,匹配类型])其中,查找值指需要查找的值;查找范围是指查找的区域;匹配类型是一个可选项,用于控制匹配方式,0表示进行精确匹配,1表示查找小于或等于查找值的最大值,-1表示查找大于或等于查找值的最小值。
另外,除了上述函数外,VBA还提供一些高级的查询函数,如FILTER、SORT等。
这些函数可以根据不同的要求对数据进行筛选、排序等操作,以满足用户不同的需求。
总之,VBA查询函数是一种非常实用的工具,可以大大增强用户的数据处理能力。
不同的查询函数可以针对不同的查询需求,帮助用户快速找到所需的信息。
教你如何通过Excel VBA编写测量坐标计算程序发布日期:2013-01-11来源:网络作者:未知浏览次数:1704摘要:认识VBA、理解VBA,并利用Office Excel VBA编写测量坐标计算程序。
关键词:Excel VBA程序坐标编写了解:VBA是什么?简单的说就是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。
可以用Excel的宏语言来使Excel自动化运行等……Microsoft让它开发出来的应用程序共享一种通用的自动化语言——Visual Basic For Application(VB A),可以认为VBA是非常流行的应用程序开发语言Visual Basic的子集,事实上VBA是V B应用程序的版本,尽管存在有些不同VBA和VB在结构上仍然十分相似。
如果你已经了解VB会发现学习VBA非常快。
相应的学完VBA会给学习VB打下坚实的基础。
理由:选择Excel VBA编程的理由是因为它的计算功能非常强大,是现今任何编程计算器无法逾越的。
它运用范围广,计算速度快,计算精度高,合理化显示等。
或许很多测量人员对Excel VBA还有些陌生,主要是大家寄托于计算器、电脑、手机PDA等系列软件使用。
Excel VBA对于大多数测量人员而没有系统学过计算机语言程序设计的人群来讲有一定含糊,不过只要有基本数学知识、测量常识和逻辑理解的人,都能通过Excel VBA编写设计出称心如意的测量程序。
目标:基于Excel VBA的测量坐标计算程序的设计目标是将繁琐计算过程转入到计算机中,利用程序语言的重复性原理,在计算机中可将坐标计算得出更精确的结果,使坐标计算更加可靠。
最终目标是让用户可以通过Excel VBA自行完成坐标计算程序设计。
认识:学习VBA到底需要什么基础和了解些什么?学习VBA需要认识英文字母、一般的单词(如:函数所用的过程)、数学基础知识、测量常识、逻辑性思维即可。
EXCELVBA20个有用的ExcelVBA代码1.显示多个隐藏的工作表如果你的工作簿里面有多个隐藏的工作表,你需要花很多时间一个一个的显示隐藏的工作表。
下面的代码,可以让你一次显示所有的工作表Sub UnhideAllWoksheets()Dim ws As WorksheetFor Each ws In ActiveWorkbook.Worksheetsws.Visible = xlSheetVisibleNext wsEnd Sub2.隐藏除了活动工作表外的所有工作表如果你做的报表,希望隐藏除了报表工作表以外的所有工作表,则可以用一下代码来实现:Sub HideAllExcetActiveSheet()Dim ws As WorksheetFor Each ws In ThisWorkbook.WorksheetsIf <> Thenws.Visible = xlSheetHiddenEnd ifNext wsEnd Sub3.用VBA代码按字母的顺序对工作表进行排序如果你有一个包含多个工作表的工作簿,并且希望按字母对工作表进行排序,那么下面的代码,可以派上用场。
Sub SortSheetsTabName()Application.ScreenUpdating = FalseDim ShCount As Integer, i As Integer, j As IntegerShCount = Sheets.CountFor i = 1 To ShCount - 1For j = i + 1 To ShCountIf Sheets(j).Name < Sheets(i).Name ThenSheets(j).Move before:=Sheets(i)End IfNext jNext iApplication.ScreenUpdating = TrueEnd Sub4.一次性保护所有的工作表如果工作薄里面有多个工作表,并且希望保护所有的工作表,那么下面的代码,可以派上用场。
VBA实现Excel数据的条件查询与检索技巧Excel是一个功能强大的电子表格软件,可以用于数据的输入、存储和分析。
通过使用VBA(Visual Basic for Applications)编程语言,我们可以进一步提升Excel的功能,实现数据的条件查询和检索。
在日常工作中,我们经常需要根据某些条件查询特定的数据。
以下是一些实用的VBA技巧,可以帮助您快速实现Excel数据的条件查询和检索。
1. 使用VBA编写条件查询的宏VBA宏是一段可以自动运行的代码,可以使用VBA编写一个宏来实现特定条件下数据的查询。
首先,在Excel中打开“开发工具”选项卡,点击“宏”按钮,在弹出的窗口中输入宏的名称,然后点击“创建”。
在VBA编辑器中,编写VBA代码来实现查询的逻辑。
例如,以下是一个简单的VBA宏,用于查询某一列中等于特定数值的所有单元格:```Sub 条件查询()Dim rng As RangeDim cell As RangeDim searchValue As VariantsearchValue = InputBox("请输入要查询的数值:")Set rng = Range("A1:A10") '要查询的范围For Each cell In rngIf cell.Value = searchValue Thencell.Interior.ColorIndex = 6 '将匹配的单元格颜色设置为黄色End IfNext cellEnd Sub```通过运行这个宏,用户可以输入要查询的数值,然后宏会遍历指定范围内的单元格,将与输入数值相等的单元格标记为黄色。
2. 使用VBA编写自定义函数除了宏,我们还可以使用VBA编写自定义函数来实现条件查询。
自定义函数可以像Excel内置函数一样在公式中使用。
以下是一个示例,演示如何使用VBA 编写一个自定义函数来查询特定条件下的数据:```Function 条件查询(rng As Range, searchValue As Variant) As RangeDim cell As RangeDim resultRange As RangeFor Each cell In rngIf cell.Value = searchValue ThenIf resultRange Is Nothing ThenSet resultRange = cellElseSet resultRange = Union(resultRange, cell) '将匹配的单元格合并到结果范围中End IfEnd IfNext cellSet 条件查询 = resultRangeEnd Function```在Excel中,可以在一个单元格中输入类似于`=条件查询(A1:A10, 5)`的公式,该公式将返回在A1:A10范围内找到的数值为5的所有单元格。
教你如何通过Excel VBA编写测量坐标计算程序发布日期:2013-01-11 来源:网络作者:未知浏览次数:1704摘要:认识VBA、理解VBA,并利用Office Excel VBA编写测量坐标计算程序。
关键词:Excel VBA 程序坐标编写了解:VBA是什么?简单的说就是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。
可以用Excel的宏语言来使Excel自动化运行等……Microsoft让它开发出来的应用程序共享一种通用的自动化语言——Visual Basic For Application(V BA),可以认为VBA是非常流行的应用程序开发语言Visual Basic的子集,事实上VBA 是VB应用程序的版本,尽管存在有些不同VBA和VB在结构上仍然十分相似。
如果你已经了解VB会发现学习VBA非常快。
相应的学完VBA会给学习VB打下坚实的基础。
理由:选择Excel VBA编程的理由是因为它的计算功能非常强大,是现今任何编程计算器无法逾越的。
它运用范围广,计算速度快,计算精度高,合理化显示等。
或许很多测量人员对Excel VBA还有些陌生,主要是大家寄托于计算器、电脑、手机PDA等系列软件使用。
Excel VBA对于大多数测量人员而没有系统学过计算机语言程序设计的人群来讲有一定含糊,不过只要有基本数学知识、测量常识和逻辑理解的人,都能通过Excel VBA编写设计出称心如意的测量程序。
目标:基于Excel VBA的测量坐标计算程序的设计目标是将繁琐计算过程转入到计算机中,利用程序语言的重复性原理,在计算机中可将坐标计算得出更精确的结果,使坐标计算更加可靠。
最终目标是让用户可以通过Excel VBA自行完成坐标计算程序设计。
认识:学习VBA到底需要什么基础和了解些什么?学习VBA需要认识英文字母、一般的单词(如:函数所用的过程)、数学基础知识、测量常识、逻辑性思维即可。
利用VBA实现Excel数据的查询与统计在Excel中进行数据查询和统计是日常工作中常见的任务之一。
为了提高效率和准确性,我们可以利用VBA编写代码来实现这一功能。
本文将介绍如何利用VBA编写代码,在Excel中进行数据的查询和统计操作。
VBA(Visual Basic for Applications)是一种可以让用户自定义操作Excel的编程语言。
通过使用VBA,我们可以编写自定义的宏,实现Excel的自动化和扩展功能。
首先,我们需要打开Excel并按下Alt + F11组合键,以打开Visual Basic for Applications编辑器。
在编辑器中,我们可以编写VBA代码。
要实现数据的查询,首先需要定义所需查询的数据范围。
例如,假设我们的数据存储在名为“Sheet1”的工作表中的A1至C10单元格范围内。
我们可以使用以下代码定义数据范围:```vbaDim ws As WorksheetDim rng As RangeSet ws = ThisWorkbook.Worksheets("Sheet1")Set rng = ws.Range("A1:C10")```接下来,我们可以使用 InputBox 函数提示用户输入要查询的数据。
例如,我们可以使用以下代码提示用户输入要查询的姓名:```vbaDim searchName As StringsearchName = InputBox("请输入要查询的姓名:")```然后,我们可以使用 Find 方法来查找包含指定姓名的单元格。
例如,我们可以使用以下代码查找包含指定姓名的单元格并将其选定:```vbaDim result As RangeSet result = rng.Find(searchName)If Not result Is Nothing Thenresult.SelectMsgBox "找到了相应的数据。
常用EXCEL的VBA函数精选前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。
而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。
第1.1例 ASC函数一、题目:要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。
二、代码:Sub 示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel") '返回69myNum2 = Asc("e") '返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub 示例_1_01():宏程序的开始语句。
2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。
也可以写为 Dim myNum1 As Integer 。
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为-32,768 到32,767 之间。
Integer 的类型声明字符是百分比符号 (%)。
3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。
Asc函数返回一个Integer,代表字符串中首字母的字符的ASCII 代码。
语法Asc(string)必要的string(字符串)参数可以是任何有效的字符串表达式。
如果 string 中没有包含任何字符,则会产生运行时错误。
怎么在VBA指令中调用Excel函数
有时在编写VBA程序时,会发现没有与Excel函数相对应的VBA 指令,在此情况下,只能想办法通过引用Excel函数来达到目地.
下面小编就教你怎么在VBA指令中调用Excel函数:
打开 Microsoft Office Excel 2007,点击“开始” ->“Excel 选项”。
在弹出的对话框中,选择“常规”选项卡,并在右侧点选“在功能区显示‘开发工具’选项卡”,并单击“确定"。
在单元格A1中输入“弧度”,单元格B1中输入“角度”,单元格A2中输入“3.14”,然后在单元格B2中输入公式"=DEGREES(A2)"在按下回车后,该单元格输出结果为179.9087477。
注:DEGREES函数的作用是将弧度转化为角度。
接下来,我们用VBA实现同样的功能。
点击“开发工具”选项卡,单击“Visual Basic”,启动Visual Basic编辑器。
在“Microsoft Excel 对象”上点鼠标右键,依次点击“插入” -> “模块”,创建“模块1”,并在该模块中输入内容:
Sub 转换()
MsgBox Application.WorksheetFunction.Degrees(3.14)
End Sub
点击“运行子过程/用户窗体”按钮,在弹出的对话框中选择“转换”,然后点击“运行”按钮。
程序弹出对话框,结果与在Excel中利用公式输出的结果一样,只是有效数字的位数不一样,这可以根据需要加以取舍。
ExcelVBA内部函数大全在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。
一.测试函数IsNumeric(x) ‘是否为数字, 返回Boolean结果,True or FalseIsDate(x) ‘是否是日期, 返回Boolean结果,True or FalseIsEmpty(x)‘是否为Empty, 返回Boolean结果,True or FalseIsArray(x) ‘指出变量是否为一个数组。
IsError(expression) ‘指出表达式是否为一个错误值IsNull(expression) ‘指出表达式是否不包含任何有效数据 (Null)。
IsObject(identifier)‘指出标识符是否表示对象变量二.数学函数Sin(X)、Cos(X)、Tan(X)、Atan(x) 三角函数,单位为弧度Log(x) 返回x的自然对数Exp(x)返回 exAbs(x) 返回绝对值Int(number)、Fix(number) 都返回参数的整数部分,区别:Int 将 -8.4 转换成 -9,而 Fix 将-8.4 转换成 -8Sgn(number) 返回一个 Variant (Integer),指出参数的正负号Sqr(number) 返回一个 Double,指定参数的平方根VarType(varname) 返回一个 Integer,指出变量的子类型Rnd(x)返回0-1之间的单精度数据,x为随机种子三.字符串函数Trim(string) 去掉string左右两端空白Ltrim(string) 去掉string左端空白Rtrim(string) 去掉string右端空白Len(string) 计算string长度Left(string, x) 取string左段x个字符组成的字符串Right(string, x) 取string右段x个字符组成的字符串Mid(string, start,x) 取string从start位开始的x个字符组成的字符串Ucase(string) 转换为大写Lcase(string) 转换为小写Space(x) 返回x个空白的字符串Asc(string) 返回一个 integer,代表字符串中首字母的字符代码Chr(charcode) 返回string,其中包含有与指定的字符代码相关的字符四.转换函数CBool(expression) 转换为Boolean型CByte(expression) 转换为Byte型CCur(expression) 转换为Currency型CDate(expression) 转换为Date型CDbl(expression) 转换为Double型CDec(expression) 转换为Decemal型CInt(expression) 转换为Integer型CLng(expression) 转换为Long型CSng(expression) 转换为Single型CStr(expression) 转换为String型CVar(expression) 转换为Variant型Val(string) 转换为数据型Str(number) 转换为String五.时间函数Now 返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。
VBA在Excel中的应⽤(⼀)1. 1. 检查活动单元格是否存在Sub activeCell()If ActiveCell Is Nothing Then End IfEnd Sub2. 2. 通过指定偏移量设置活动单元格Sub offset()ActiveCell.Offset(RowOffset:=-2, ColumnOffset:=4).ActivateEnd SubOffset函数的第⼀个参数为Row的偏移量,第⼆个参数为Column的偏移量(可以不指定),使⽤时可以直接给定值,如Offset(2, 4)。
值⼩于0向相反⽅向偏移。
Offset().Activate与Offset().Select在效果上等同。
3. 3. 设置活动单元格的当前值Sub SetValueActiveCell.Value = "Hello World!"End Sub4. 4. 为当前活动单元格设置公式Sub fomula()ActiveCell.Formula = "=SUM($G$12:$G$22)"End Sub将公式的表达式直接赋值给Formula属性,公式表达式可以参考Excel中的公式菜单,如求和、计数、求平均值等。
5. 5. 获取当前活动单元格的地址Sub selectRange()MsgBox ActiveCell.AddressEnd Sub地址的格式如:$A$11。
6. 6. 获取从当前活动单元格开始到边界单元格的区域' 从当前单元格到最顶端Sub SelectUp()Range(ActiveCell, ActiveCell.End(xlUp)).SelectEnd Sub'从当前单元格到最底端Sub SelectDown()Range(ActiveCell, ActiveCell.End(xlDown)).SelectEnd Sub'从当前单元格到最右端(等同于xlEnd)Sub SelectToRight()Range(ActiveCell, ActiveCell.End(xlToRight)).SelectEnd Sub'从当前单元格到最左端Sub SelectToLeft()Range(ActiveCell, ActiveCell.End(xlToLeft)).SelectEnd Sub7. 7. 当前活动单元格所在区域选择Sub SelectCurrentRegion()ActiveCell.CurrentRegion.SelectEnd Sub对CurrentRegion属性所代表的区域的说明:CurrentRegion返回活动单元格所在的周围由空⾏和空列组成的单元格区域(这个似乎有点不太好理解),可以看下图的⽰例:可以这样理解CurrentRegion属性所代表的区域,即以活动单元格为中⼼,它所包含的矩形区域的每⼀⾏和每⼀列中⾄少包含有⼀个数据,上图中的蓝⾊阴影区域中,⽆论活动单元格是哪⼀个,其所在的当前区域均为同⼀区域,如B5:D7区域中的B5和C6单元格。
在Excel VBA中调用E xcel自带函数-E xcelVBA学习2010-03-29 19:45:25| 分类: comput er|字号订阅最近在写一个VBA的程序,想自己生成一些报表.便遇到了在V BA中无法使用SUM函数.解决的方法如下:前段时间为公司实验室编制测试数据库,其中遇到一个问题,怎样在VBA中使用Ex cel自带的一些函数呢?如min,max,averag e等等。
本以为能在E xcel表格中直接使用的函数也能直接移植到VBA中,结果发现根本行不通,程序报错。
后来通过多方查询发现,虽然不能直接引用,但是我们可以曲线救国,excel中表格可以用max函数,在VBA中也可以用,只需通过Wo rkshe etFun ction对象就可以引用,后面加函数名称,然后加ran ge来引用单元格。
举个例子:Applic ation.Worksh eetFu nctio n.Max(range("A1:C5"))下面就是能在VBA中使用exce l自带函数:A__AcosAcoshAndAsinAsinhAtan2AtanhAveDevAverag eB__BetaDi stBetaIn vBinomD istC__Ceilin gChiDis tChiInvChiTes tChooseCleanCombinConfid enceCorrelCoshCountCountACountB lankCountI fCovarCritBi nom D__ DAvera ge Days360 Db DCount DCount A Ddb Degree s DevSqDGet DMax DMin Dollar DProdu ct DStDev DStDev P DSum DVar DVarPE__ Even ExponD ist F__ Fact FDistFind FindBFInv Fisher Fisher Inv FixedFloorForeca st Freque ncy FTestFvG__ GammaD istGammaL n GeoMea n GrowthH__HarMea n HLooku p HypGeo mDistI__<IndexInterc ept IpmtIrrIsErrIsErro r IsLogi cal IsNAIsNonT ext IsNumb er IspmtIsTextJ__K__KurtL__LargeLinEstLnLogLog10LogEst LogInv LogNor mDist LookupM__MatchMaxMDeter mMinMInver se MIrrMMultModeN__NegBin omDis t NormDi st NormIn v NormSD ist NormSI nv NPerNpvO__OddOrP__Pearso n Percen tilePercen tRank PermutPhonet icPiPmtPoisso n PowerPpmtProbProduc t ProperPvQ__Quarti leR__Radian s RankRateReplac eRept RomanRoundRoundD own RoundU p RSqRTDS__Search Search B SinhSkewSlnSlopeSmallStanda rdize StDevStDevP StEyxSubsti tuteSubtot al SumSumIfSumPro ductSumSqSumX2M Y2 SumX2P Y2 SumXMY2 SydT__ TanhTDistTextTInvTransp ose TrendTrim TrimMe an TTestU__V__ Var VarP Vdb VLooku p W__ Weekda y Weibul l X__ Y__ Z__ ZTest。
2. Find方法的语法[语法].Find (What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[S earchFormat])[参数说明](1),必须指定,返回一个Range对象。
(2)参数What,必需指定。
代表所要查找的数据,可以为字符串、整数或者其它任何数据类型的数据。
对应于“查找与替换”对话框中,“查找内容”文本框中的内容。
(3)参数After,可选。
指定开始查找的位置,即从该位置所在的单元格之后向后或之前向前开始查找(也就是说,开始时不查找该位置所在的单元格,直到Find方法绕回到该单元格时,才对其内容进行查找)。
所指定的位置必须是单元格区域中的单个单元格,如果未指定本参数,则将从单元格区域的左上角的单元格之后开始进行查找。
(4)参数LookIn,可选。
指定查找的范围类型,可以为以下常量之一:xlValues、xlFormulas或者xlComment s,默认值为xlFormulas。
对应于“查找与替换”对话框中,“查找范围”下拉框中的选项。
(5)参数LookAt,可选。
可以为以下常量之一:XlWhole或者xlPart,用来指定所查找的数据是与单元格内容完全匹配还是部分匹配,默认值为xlPart。
对应于“查找与替换”对话框中,“单元格匹配”复选框。
(6)参数SearchOrder,可选。
用来确定如何在单元格区域中进行查找,是以行的方式(xlByRows)查找,还是以列的方式(xlByColumns)查找,默认值为xlByRows。
对应于“查找与替换”对话框中,“搜索”下拉框中的选项。
(7)参数SearchDirection,可选。
用来确定查找的方向,即是向前查找(XlPrevious)还是向后查找(xlNext),默认的是向后查找。
(8)参数MatchCase,可选。
ExcelVBA学习之身份证号校检自定义函数Excel VBA学习之身份证号校检自定义函数【问题提出】上次学习了一个用Excel函数的方法来解决这个问题,但是函数太长了,有时会忘记:=IF(LEN($B2)=18,IF(MID('10X98765432',MOD(SUMPRODUC T(VALUE(MID($B2,ROW($1:$17),1)),说明!$B$2:$B$18),11) 1,1)=RIGHT($B2,1),'合法','不合法'),'长度错误')能不能简单一点,工作时不用那么辛苦的输入这个函数【知识学习】自定义函数的基本语法:我们在Excel中使用的内置函数,有的没参数,比如Rand函数,有的有参数,比如Vlookup,参数还好几个,有些参数是区域,有些是数字。
我们今天就从最基本的开始,先来学习下定义一个没有参数和一个只有一个参数的函数,通过最基本的例子来掌握自定义函数的基本语法结构。
自定义函数的语法结构:Function 函数名(参数1,参数2,……,参数n)代码函数名 = 代码执行的结果End Function语法很简单,看来难在了怎么得到结果的这段代码上。
好了,下面我们就开始自定义一个没有参数的函数吧。
【写一个自定义函数用于检测身份证号是否正确】''====用于校检身份证号是否正确的自定义函数=========Function ID(n)Dim h, s, t, z As Integerwi = Array('7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2')y = Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2') If Len(n) = 18 ThenFor h = 0 To 16r = Mid(n, h 1, 1)If IsNumeric(r) = False ThenID = '第 ' & h 1 & ' 位为非法字符'Exit FunctionEnd Ifs = s r * wi(h)Next ht = s Mod 11If UCase(Mid(n, 18)) = y(t) ThenID = '身份证号码正确'ElseID = '身份证号码不正确'End IfElseID = '位数少于18位'End IfEnd Function【使用方法】【测试成功】=====The End=====。
ExcelVBA内置函数—InStrRev函数、InStr函数InStrRev函数语法:InstrRev(stringcheck, stringmatch[, start[, compare]]) 说明:返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。
InstrRev函数语法有如下命名参数:设置值compare参数值如下:InStrRev返回值如下:请注意,InstrRev函数的语法和Instr函数的语法不相同。
———————————————————————————————————————————————————————————InStr 函数语法:InStr([start, ]string1, string2[, compare])说明:返回Variant (Long),指定一字符串在另一字符串中最先出现的位置。
参数设置为:InStrB 函数作用于包含在字符串中的字节数据。
所以 InStrB 返回的是字节位置,而不是字符位置。
示例:Sub 查找子串位置()str1 = "鹤庆县HQX血吸虫病hqx2388HQX防治站"Debug.Print InStrRev(str1, "hqx")Debug.Print InStrRev(str1, "hqx", -1)Debug.Print InStrRev(str1, "hqx", -1, vbTextCompare)Debug.Print InStr(str1, "hqx")Debug.Print InStr(7, str1, "hqx")Debug.Print InStr(1, str1, "hqx", vbTextCompare)Debug.Print InStr(1, str1, "hqx")End Sub立即窗口输出1111181111411InStr In StringInStrRev In String Reverse(反向)用instr查找第3个"\":D:\BoChao\DLFS for 2004\NetSet.exe 时要知道从第几个字符开始查找;用InStrRev查找最后一个"\",就简单了。
自学VBA,内置函数和查询方式
合理使用函数不但可以节省处理数据的时间,提高工作效率还可以降低编程的难度,减少编写代码的工作量。
不至于自己重新编写一个函数就可以实现的代码。
VBA作为一种编程语言,也有自己的VBA函数。
VBA的内置函数和Excel函数很类似,如果你知道Excel的函数,一般在使用VBA的内置函数的时候也会一目了然,Excel的函数名称和VBA内置函数名称一般都是相同的名字,只是使用语法是 VBA.函数的名字()。
VBA中有哪些函数
VBA所有的函数都可以在帮助中查找到,如下图:
可以看到所有VBA的函数,也可以在下面看到函数的参数和参数
使用说明。