VB求最大值、最小值的行号和列号
VBA函数大全

返回参数的绝对值, 其类型和参数相同。
Array函数返回一个包含数组的Variant。
Asc函数返回一个Integer, 代表字符串中首字母的字符代码。
Atn函数返回一个Double, 指定一个数的反正切值。
CallByName函数执行一个对象的方法, 或者设置或返回一个对象的属性。
Choose函数从参数列表中选择并返回一个值。
Chr函数返回String, 其中包含有与指定的字符代码相关的字符。
返回一个Double, 指定一个角的余弦值。
CreateObject函数创建并返回一个对ActiveX对象的引用。
CurDir函数返回一个Variant(String), 用来代表当前的路径。
CVErr函数返回Error子类型的Variant, 其中包含指定的错误号。
Date函数返回包含系统日期的Variant(Date)。
DateAdd函数返回包含一个日期的Variant(Date), 这一日期还加上了一段时间间隔。
DateDiff函数返回Variant(Long)的值, 表示两个指定日期间的时间间隔数目。
DatePart函数返回一个包含已知日期的指定时间部分的Variant(Integer)。
DateSerial函数返回包含指定的年、月、日的Variant(Date)。
DateValue函数返回一个Variant(Date)。
Day函数返回一个Variant(Integer), 其值为1到31之间的整数, 表示一个月中的某一日。
DDB函数返回一个Double, 指定一笔资产在一特定期间内的折旧。
可使用双下落收复平衡方法或其它指定的方法进行计算。
Dir函数返回一个String, 用以表示一个文件名、目录名或文件夹名称, 它必须与指定的模式或文件属性、或磁盘卷标相匹配。
DoEvents函数转让控制权, 以便让操作系统处理其它的事件。
Environ函数返回String, 它关连于一个操作系统环境变量。
在Macintosh中不可用EOF函数返回一个Integer, 它包含Boolean值True, 表明已经到达为Random或顺序Input打开的文件的结尾。
VB-复合数据类型

初值分别为:1、2 和 3,即 b(0)=1、b(1)=2 和 b(2)=3。
不允许对指定了上界的数组进行初始化。
例如,语句:
Dim b(2) As Integer ={1,2,3}
是错误的。
' 初始化数组不应定义数组长度
因此,若说明数组同时初始化,数组名后的圆括号内必须为空,
为了方便组织和处理这类相关联的数据,可以使用数组。数组有一维数组、 二维数组和多维数组。
4.1.1 一维数组及其使用 1. 一维数组的概念
一维数组是由一组类型相同互相有关联的数据构成。 例如,某个班所有学生的身高就构成一个一维数组。又如,某个班所有学
1
生某门课程的成绩也构成一个一维数组。 在程序中使用的每个一维数组都要命名,这个名字称为一维数组名。一维
For i=0 To 10 Console.WriteLine(a(i))
Next i
按顺序输出一维数组 a 全部元素的值。
5. 一维数组的初始化
提供了对数组初始化的功能,即在定义数组的同时,可以为数组
元素赋初值。一维数组初始化语句的一般格式:
Dim <数组名>( ) As <数据类型>={<常量 1>,<常量 2>,…,<常量 n>}
第 n-1 步:在 a(n-1)和 a(n)中找出最小值, 并记下它的下标为 t,即 a(t)是
最小值,把 a(t)与 a(n-1)的值交换,这时 a(n-1)为第 n-1 小值,而 a(n)为最大值。
上述算法也可以描述为:
For i=1 To n-1 从 a(i)到 a(n)找最小元素 a(t) 把 a(t)与 a(i)交换
' 用随机数初始化数组
经典ExcelVBA代码

经典ExcelVBA代码Application(Excel程序)篇Application.EnableEvents= True/ False ’启用/禁用所有事件Application.DisplayAlerts=True/False ’显示/关闭警告框提示框Application.ScreenUpdating= True/False ’显示/关闭屏幕刷新Application.StatusBar = "软件报专用" ’在地址栏中显示文本,标题栏用Caption属性Application.Cursor = xlIBeam ‘设置光标形状为Ⅰ字形,xlWait为沙漏(等待)形,xlNormal为正常Application.WindowState = xlMinimized ‘窗口最小化,xlMaximized最大化,xlNormal为正常Application.ActivateMicrosoftApp xlMicrosoftWord ’开启Word应用程序Application.TemplatesPath ‘获取工作簿模板的位置Application.CalculateFull ’重新计算所有打开的工作簿中的数据Application.RecentFiles.Maximum = 2 ’将最近使用的文档列表数设为2Application.RecentFiles(3).Open ’打开最近打开的文档中的第3个文档Application.AutoCorrect.AddReplacement "sweek", "软件报" ’自动将输入的"sweek"更正为"软件报"Application.Dialogs(xlDialogPrint).Show ‘显示打印文档的对话框Application.OnTime Now + TimeValue("00:00:45"), "process" ’45分钟后执行指定过程Application.OnTime TimeValue("14:00:00"), " process " ’下午2点执行指定过程Application.OnTime EarliestTime:=TimeValue("14:00:00"), _ Procedure:="process", Schedule:=False ’取消指定时间的过程的执行Application.CutCopyMode = False 退出复制/剪切模式后,在程序运行时所进行的复制或剪切操作不会在原单元格区域留下流动的虚框线。
vb.netT求最值,平均值

EndSub
8.双击“清空”按钮后编辑以下代码:
TextBox1.Text =""
9.回到form1后调试程序;
实验数据(结果)及结论
紧接着上面的步骤,调试后:
(1)点击“执行1“弹出对话框“请输入你想输入的数字个数”,以输入4个数为例,截图如下:
DimKAsInteger, jAsLong, XAsDouble
n = Val(InputBox("请输入您想输入数的个数"))
ReDimMyData(n - 1)
Fori = 0Ton - 1
MyData(i) = Val(InputBox("请输入第"& i + 1 &"个数"))
Nexti
ForK = 1Ton - 1
Forj = 0To(n - 1) - K
IfMyData(j) < MyData(j + 1)Then
X = MyData(j) : MyData(j) = MyData(j + 1) : MyData(j + 1) = X
EndIf
Nextj
NextK
TextBox1.Text ="从大到小排序为"
教育学院实验报告
姓名
杨培西
学号
201004401117来自实验小组组号实验小组组内编号
实验题目
输入N个数,对他们进行排序,并求这N个数的和、最大值、最小值以、平均值。
实验目的
及要求
掌握数组的定义、大小、赋值以及输出。
excel vb find函数用法 -回复

excel vb find函数用法-回复Excel VBA 中的FIND 函数用于在指定范围内查找特定的值,并返回该值的单元格引用或相应的行和列号。
首先,让我们来了解FIND 函数的基本语法:Range.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)下面逐一解释每个参数的作用:- What:要查找的内容,可以是字符串、日期、数字等。
- After:在指定范围后查找,可以是单元格地址或单元格引用。
如果未提供此参数,则从范围的第一个单元格开始查找。
- LookIn:要查找内容所在的位置,可以是单元格常量xlValues、xlFormulas 或xlComments。
- LookAt:查找方式,可以是单元格常量xlWhole(匹配整个单元格内容)或xlPart(匹配部分内容)。
- SearchOrder:查找顺序,可以是单元格常量xlByRows(逐行查找)或xlByColumns(逐列查找)。
- SearchDirection:查找方向,可以是单元格常量xlNext(向下或向右查找)或xlPrevious(向上或向左查找)。
- MatchCase:是否区分大小写,可以是True(区分)或False(不区分)。
- MatchByte:是否区分全角和半角字符,可以是True(区分)或False(不区分)。
- SearchFormat:是否使用单元格格式进行查找,可以是True 或False。
接下来,我们来详细说明FIND 函数在实际使用中的一些常见示例。
示例1:基本用法假设我们有一个包含学生姓名的数据表格,我们想要查找某个特定的学生姓名是否存在于表格中。
我们可以使用以下代码来实现:vbSub FindStudentName()Dim rng As RangeDim result As RangeDim studentName As String' 定义要查找的学生姓名studentName = "John Doe"' 将要查找的范围设置为数据表格Set rng = Sheet1.Range("A1:A10")' 查找学生姓名Set result = rng.Find(studentName)' 判断是否找到学生姓名If Not result Is Nothing ThenMsgBox "找到学生:" & result.ValueElseMsgBox "未找到学生:" & studentNameEnd IfEnd Sub上述代码首先定义了一个范围对象rng,它指定了要查找的范围。
VB里的函数,字符,运算符等等内容

VB的数据类型比较丰富,可以分为两大类:基本数据类型和用户自定义类型。
一、基本数据类型表3-1列出了VB使用的基本数据类型。
表3-1 VB 基本数据类型基本数据类型是系统定义的标准数据类型,可以直接使用。
分为6类:数值型,日期型,逻辑型,字符型和变体型。
(一)数值型数据数值型数据分为整型和实型两类。
整型数据分为整数和长整数,实型数据分为单精度和双精度数据。
有时把货币型和字节型数据也归为数值型数据。
1.整数(Interger)。
整数是不带小数点,范围在-32768~32767之间,在机器内使用2个字节存储的整数。
在VB中数尾常加“%”表示整型数据,也可省略。
如-34,78%。
2.长整数(Long)。
长整数可以超过整数-32768~32767范围,可以是-2147483648~2147483647之间的不带小数点的整数,在机器内用4个字节存储。
在VB中数尾常加:“&”表示长整型数据。
如-334&,67785649&。
整数(Interger)和长整数(Long)均用于保存整数,其可以是正整数、负整数或者0。
例如:369、-369、+369均表示整数,而369.0就不是整数;-9993977、12345678均表示长整数,而123,456则是非法数。
整型数的运算速度快、精确,且占用存储空间较小,但表示数的范围也较小。
3.单精度数(Single)。
单精度数是带小数点的实数,有效数字为7位,在机器内用4个字节存储。
通常以指数形式表示,指数部分用“E”或“e”表示。
在VB中数尾常加“!”表示单精度数据,也可省略。
如-234.78,45.56!,2.67e+3,-2.89E-2。
单精度数有多种表示形式:±n.n(小数形式)、±n E ±m(指数形式)、 ±n.n E ±m (指数形式)。
例如:123.45、0.12345E+3、123.45!都是同值的单精度数。
vb常用程序代码
1、求半径为r的圆的面积,要求用户从键盘输入半r。
程序代码:Private Sub Form_click()Const PI = 3.14Dim r%Dim s!r = InputBox("请输入半径r的值:", "求圆的面积") s = PI * r * rForm1.FontSize = 16Print "半径是" + Str(r) + "的圆的面积是" + Str(s) End Sub2、输入三个整数,从小到大顺序输出。
程序代码:Private Sub Form_click()a = InputBox("a")b = InputBox("b")c = InputBox("c")Print "排序前:"; a, b, cIf a > b Then t = a: a = b: b = tIf a > c Then t = a: a = c: c = tIf b > c Then t = b: b = c: c = tPrint "排序后:"; a, b, cEnd Sub3、输入三个整数,从大到小顺序输出。
程序代码:Private Sub Form_click()a = InputBox("a")b = InputBox("b")c = InputBox("c")Print "排序前:"; a, b, cIf a <b Then t = a: a = b: b = tIf a < c Then t = a: a = c: c = tIf b < c Then t = b: b = c: c = tPrint "排序后:"; a, b, cEnd Sub4、输入x的值,输出对应的值。
ExcelVBA工作表有数据区域中获取最大行列号方法
'单元格(A1,B2,c3,d4,e5,f6)有数据,其他为空时,得最大行号:6,Ok!
'单元格(A1,B2,c3,d4,e5,f6,a20,b20)有数据,其他为空时,得最大行号:20,Ok!
'单元格(A1,B2,c3,d4,e5,f6,a20,b20)有数据,其他为空时,用“Rows(20).Clபைடு நூலகம்ar”后,再执行mHh51,得最大行号:20,
mhh54 = Cells(65536, 3).End(xlUp).Row 'OK! ,
Debug.Print mhh54
'单元格(A1,B2,c3,d4,e5,f6)有数据,其他为空时,得最大行号:3,Ok!是按C列计
'单元格(A1,B2,c3,d4,e5,f6,a20,b20)有数据,其他为空时,得最大行号:3,Ok!
'单元格(A1,B2,c3,d4,e5,f6)有数据,其他为空时,得最大列号:6,Ok!
'单元格(A1,B2,c3,空 ,e5,f6)有数据,d4+其他为空时,得最大列号:6
‘
'当单元格(A1,B2,c3,d4,e5,f6,a20,b20)有数据,行19-行7都空的无数据时,想要清除行20的内容后,再获取最大的行号。
Sub mHLh() '获取工作表中有数据区域的最大行列号
mLh5 = edRange.Columns.Count 'OK! '最大列号,中间可以有空列,多少空列都可,且空列变动后无须先保存。
'当单元格(A1,B2,c3,d4,e5,f6)有数据,其他为空时,得最大列号:6,Ok!
Debug.Print mhh52
第五章vb计算机
2013年7月17日星期三
Visual Basic程序设计
5.2 数组的基本操作
1. 数组赋初值 (1)用循环 For i = 1 To 10 A(i)=i+3 Next i (2) Array函数(只能是一维变体数组) Dim b As Variant b = Array("abc", "def", "67") For i = 0 To UBound(b) Print b(i); " "; Next i
2013年7月17日星期三
Visual Basic程序设计
5.求数组和、最值、位置 例5.4 求一维数组中各元素之和、最小数组元素,并 将最小值数组元素与数组中第一个元素交换。
求元素和:通过循环将每个元素进行累加。
求数组中最小元素:假设第一个元素为最小,然后 将该数与其他元素逐一比较,若发现小于最小值, 就用新值替换最小值,同时记录下标值。 求最大值的方法与求最小值相似。
2013年7月17日星期三
Visual Basic程序设计
5.1.3 动态数组及声明
动态数组指在声明数组时未给出数组的大小(省略括号中的下标),当要使 用它时,随时用ReDim语句重新指出数组大小。 建立动态数组要分两步: (1)用Dim 语句声明数组,但不能指定数组大小 Dim 数组名( ) As 数据类型 (2)用ReDim语句动态地分配元素个数 ReDim 数组名 (下标[,下标2…]) 例:Dim s ( ) As Single Sub Form_Load( ) … ReDim s(4,8) … End Sub
5.1.2 静态数组及声明
在声明时确定了大小的数组称为静态数组。静态数组从建立到消亡 整个阶段中数组的大小是固定的。 静态数组的声明形式: Dim 数组名(下标1[,下标2…]) [As 类型] 声明了数组的名、维数、大小、类型(省略时为变体类型) 维数:几个下标为几维数组,最多60维。 下标:[下界 To ] 上界 省略下界为0,必须为常数。 每一维大小:上界-下界+1 数组大小: 每一维大小的乘积 例:Dim mark(1 to 100) As Integer
经典Excel VBA代码
经典Excel VBA代码1VBA基础在大家的关注声中即将告一段落了,有许多经典的VBA操作我们只是作了简要的介绍,想要熟练地使用VBA还需要大家慢慢地去消化和吸收,然后在实践中总结和提高。
最后我们收集了常见的VBA代码以飨广大的读者,希望对大家有所启示。
Application(Excel程序)篇Application.EnableEvents= True/ False ’启用/禁用所有事件Application.DisplayAlerts=True/False ’显示/关闭警告框提示框Appli cation.ScreenUpdating= True/False ’显示/关闭屏幕刷新Application.StatusBar = "软件报专用" ’在地址栏中显示文本,标题栏用Caption属性Application.Cursor = xlIBeam ‘设置光标形状为Ⅰ字形,xlWait为沙漏(等待)形,xlNormal为正常Application.WindowState = xlMinimized ‘窗口最小化,xlMaximized最大化,xlNormal为正常Application.Ac tivateMicrosoftApp xlMicrosoftWord ’开启Word应用程序Application.TemplatesPath ‘获取工作簿模板的位置Application.CalculateFull ’重新计算所有打开的工作簿中的数据Application.RecentFiles.Maximum = 2 ’将最近使用的文档列表数设为2Application.RecentFiles(3).Open ’打开最近打开的文档中的第3个文档Application.AutoCorrect.AddReplacement "sweek", "软件报" ’自动将输入的"sweek"更正为"软件报"Application.Dialogs(xlDialogPrint).Show ‘显示打印文档的对话框Application.OnTime Now + TimeValue("00:00:45"), "process" ’45分钟后执行指定过程Application.OnTime TimeValue("14:00:00"), " process " ’下午2点执行指定过程Application.OnTime EarliestTime:=TimeValue("14:00:00"), _Procedure:="process", Schedule:=False ’取消指定时间的过程的执行工作簿/工作表篇ActiveWorkbook.Sheets.Count ’获取活动工作薄中工作表数ActiveWorkbook.LinkSources(xlExcelLinks)(1) ‘返回当前工作簿中的第一条链接ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetHidden ‘隐藏工作表,与在Excel菜单中执行“格式—工作表—隐藏”操作一样ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVeryHidden ‘隐藏工作表,不能通过在Excel 菜单中执行“格式—工作表—取消隐藏”来重新显示工作表ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVisible ‘显示被隐藏的工作表ThisWorkbook.Sheets(1).ProtectContents ‘检查工作表是否受到保护ActiveSheet.Columns("B").CutActiveSheet.Columns("F").Insert ‘以上两句将B列数据移至F列,原C列后的数据左移ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自动调整当前工作表A列的列宽ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘选中当前工作表中常量和文本单元格ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘选中当前工作表中常量和文本及错误值单元格edRange.Rows.Count ‘当前工作表中已使用的行数ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(3), , 2 ‘在第3张工作表之前添加2个新的工作表ActiveSheet.Move After:=ActiveWorkbook. _She ets(ActiveWorkbook.Sheets.Count) ’将当前工作表移至工作表的最后Worksheets(Array(“sheet1”,”sheet2”)).Select ’同时选择工作表sheet1和sheet2 edRange.FormatConditions.Delete ‘删除当前工作表中应用的条件格式Cells.Hyperlinks.Delete ‘取消当前工作表中所有单元格的超链接ActiveSheet.PageSetup.RightFooter=A ctiveWorkbook.FullName ‘在页脚显示文件的路径ActiveSheet.PrintPreview Enablechanges:=False ‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮单元格/单元格区域篇edRange.Row ‘获取已使用的单元格区域的第一行的行号Range(“A65536”).End(xlUp).Row ‘返回A列最后一行(即记录的总条数)cell.Range(“A1”).HasFormula ‘检查单元格或单元格区域中的第一个单元格是否含有公式或cell.HasFormula ‘工作表中单元格是否含有公式Target.EntireColumn.Select ‘选择单元格所在的整个列,Target.EntireRow.Select为选择单元格所在的整行ActiveCell.Row ‘活动单元格所在的行号,ActiveCell.Column为活动单元格所在的列数ActiveWindow.ScrollRow = 2 ’将当前工作表窗口滚动到第2行ActiveWindow.ScrollColumn = 5 ’将当前工作表窗口滚动到第5列Worksheets("sheet1").Range("A1:C5").CopyPicture xlScreen, xlBitmap ’将指定的单元格区域的内容复制成屏幕快照Selection.Hyperlinks.Delete ‘删除所选区域的所有链接ActiveSheet.Cells(1, 1).Font.Bold = TRUE ‘Bold属性用于设置字体是否为加粗, Size属性设置字体大小, ColorIndex属性设置字体颜色(其值为颜色索引号), Italic属性设置字型是否为倾斜, Name 属性设置字体名称ActiveSheet.Cells(1, 1).Interior.ColorIndex = 3 ‘将单元格的背景色设置为红色IsEmpty (ActiveCell.Value) ’判断活动单元格中是否有值ActiveCell.Value = UCase(ActiveCell.Value) ’将当前单元格中的字符转换成大写ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) ’将活动单元格中的字符串转换成小写ActiveCell.CurrentRegion.Select ’选择当前活动单元格所在的连续的非空区域,也可以用Range(ActiveCell, UsedRange.End(xlDown)).SelectActiveCell.Offset(1,0).Select ’活动单元格下移一行Range(“B2”).Offset(ColumnOffset:=1)或Range(“B2”).Offset(,1) ‘读取指定单元格右侧单元格中的数据Range(“B2”).Offset(Rowo ffset:=-1)或Range(“B2”).Offset(-1) ‘读取指定单元格上一行单元格中的数据Range(“A1”).Copy Range(“B1”) ’复制单元格A1中的内容到B1中Range(“A1:D8”).Copy Range(“H1”) ’将指定单元格区域复制到从H1开始的区域中,用Cut方法可以实现剪切操作ActiveWindow.RangeSelection.Value = "软件报" ’将指定字符串输入到所选单元格区域中窗体(控件)篇Option Explicit ’强制对模块内所有变量进行声明Userform1.Show ‘显示用户窗体Load Userform1 ‘加载一个用户窗体,但该窗体处于隐藏状态Userform1.Hide ‘隐藏用户窗体Unload Userform1 或Unload Me ‘卸载用户窗体Me.Height=Int(0.5 * ActiveWindow.Height) ‘窗体高度为当前活动窗口高度的一半,宽度用ActiveWindow. Width属性boBox1.AddItem Sheets("Shee t1").Cells(1, 1) ‘将指定单元格中的数据添加到复合框中ListBox1.List=MyProduct() ‘将数组MyProduct的值添加到列表框ListBox1中ListBox1.RowSource=”Sheet1!isum” ‘将工作表Sheet1中名为的isum区域的值添加到列表框中ListBox1.Selected(0) ‘选中列表框中的指定的条目ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中选中的条目If MsgBox(“要退出吗?”,vbYesNo)<>vbYes Then Exit Sub ’返回值不为“是”,则退出Config=vbYesNo+vbQuestion+vbDefaultButton2 ’使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮MsgBox “This is the first line.” & vbNewLine & “Second line.” ’在消息框中强制换行,也可用vbCrLf代替vbNewLine。