递归(VBA实现)】的更多相关文章

案列: 给定n个数,取任意g个数之和等于h的组合. 采用递归的方式实现: Option Explicit Dim arr1(1 To 10000, 1 To 1) As String Dim k, g, h As Integer Dim arr Dim k1 Sub merge() k = 0 Dim t t = Timer Erase arr1 ' 清空数组中数据 arr = Range("a2:a" & Range("a65535").End(xlUp)…
此贴原转自EH论坛,我自己有所修改 [编者按]速度是程序设计永恒的热门话题,虽然速度技巧在各种语言之间可以相互借鉴,但差别有时也会很大,比如VC中由于字符串的存储方式决定了判断空串使用len函数更快,同样,由于C内置了大多数API函数,使用API函数速度也会更快.此外,从不同的角度,往往也会产生或得出截然不同的效果和取向,凡此种种,要求程序人员在实际应用时要灵活对待,没有绝对的可以或不可以.这里收集了一些最为常用的提速技巧,谨供大家参考. 一.让代码“专注”运行 1.Application.Sc…
安装office2010的时候, 最好是 完全安装/完整安装 , 这样可以查阅 excel的 "帮助文档" 帮助文档中包含了更多的/更详细的 参考信息. 普通模块无事件, 只有 子过程和函数等.. / 而类模块(包括工作表/工作簿/窗体)模块 才有 事件! 工作表的名称: 要注意, 在vba代码中, 是用的 worksheet表示工作表, 而在excel中表示工作表的 默认名称直接是 : Sheet1, Sheet2,Sheet3 没有work- 但是在excel对象中, 是三个she…
http://club.excelhome.net/thread-970051-1-1.html VBA Dumper 0.1.4.2更新,填补国内同类程序空白 此程序为演示版,可以在无office的环境下Dump出复合文档的VBA代码(Excel\Word\PPT等),每个模块最大Dump长度不超过六百个字符,用于简单判断病毒基本够了.也可以用来恢复受损文件中的vba代码.使用VBA Dumper可以在不打开office文件的情况下检查vba代码,目前的宏病毒杀毒软件基本都是这个路子. 使用方…
3.1 编写sub过程 实例: Sub 建立10个表() If sheets.count>=10 then exit sub Sheets.add , sheets(sheets.count) , 1 Call 建立10个表     ‘过程递归 End sub Sub 选取统计() Dim msg as string Msg = “单元格个数:” & selection.count & chr(10) Msg = msg & “数字个数:” & worksheetfu…
VBA的过程及参数详解 VBA中的过程(Procedure)有两种,一种叫函数(Function),另外一种叫子程序(Subroutine),分别使用Function和Sub关键字.它们都是一个可以获取参数.执行一系列语句.以及改变其参数的值的独立过程.而与 Function 过程不同的是:带返回值的 Sub 过程不能用于表达式. 这里主要介绍子程序的使用方法,同样这些方法也可以应用到Function上. 语法[Private | Public | Friend] [Static] Sub na…
最近一直在研究VBA,写报表的工作.将所得的知识,经验总结一下,与大家分享. 工具篇,VBA 1.EXCEL一个最好用的功能就是录制宏,当一个函数拿不准要怎么写,用什么函数表示的时候,录制就帮了大忙了. 2.VBA相对于录制的宏,可以更精确,更聪明,逻辑更清晰,执行也更有效.特别是它的循环和递归,直接解放了人的双手. 3.VBA的基本操作 (1)定位: 基本单位:sheets(页),Rows(行),Columns(列),cells(单元格),RANGE(一个范围的单元格) 相对于每个基本单位,我…
这是一个学习VBA编程的学习笔记. 一. 介绍 二. 使用手册 2.1. 如何在Excel2010中开始使用VBA? 2.2. 如何使用VBA编辑器进行编程? 三. 语法说明 3.1 数据类型 3.2 变量和常量的定义 3.3 数组 3.4 过程语句 3.5 过程和函数 3.6 补充 四. 具体实例 一.介绍 Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Offic…
正常情况下想要遍历文件夹和子文件夹,可以采用递归的方式 Sub ListFilesTest() With Application.FileDialog(msoFileDialogFolderPicker) If .Show Then myPath$ = .SelectedItems() Else Exit Sub End With If Right(myPath, ) <> "\" Then myPath = myPath & "\" [a:a]…
For Each循环用于为数组或集合中的每个元素执行语句或一组语句.For Each循环与For循环类似; 然而,For Each循环是为数组或组中的每个元素执行的. 因此,这种类型的循环中将不存在步计数器. 它主要用于数组或在文件系统对象的上下文中使用,以便递归操作. 语法 以下是VBA中For Each循环的语法. For Each element In Group [statement ] [statement ] .... [statement n] [Exit For] [statem…