本文将分享一些工作中VBA的妙用,在有些方面(Office相关处理)还是VBA操作起来更加便捷与简单。...今天来提供另外一种思路,利用VBA批量修改RTF的字体格式。...worddoc.Activate Call ChangeFontson worddoc.Close True FileName = Dir() End If Loop...的作用也是十分明显和高效的,譬如同类型表格,批量提取数据。...制作固定模板报表可以使用“邮件合并”功能,比其他的方式简单太多了,工作中我们不仅有SAS还有VBA可以用,如果一定要借助SAS来解决问题,可以把研究方向改为如何用SAS来调用VBA。
VBA在多个文件中Find某字符的数据并复制出来 今天在工作中碰到的问题 【问题】有几个文件,每个文件中有很多条记录,我现在要提取出含有“名师”两个字符的记录。...要打开文件对话框,选中要打开的文件,存入数组,再GetObject(路径)每一个文件打开,用Find指定字符,找到第一个时用firstAddress记录起来,再FindNext查找下一个,当循环到最初的位置时停止...完成一个文件,再找开一个文件…… 【VBA代码】 SubGetFile_Find_FindNext() Dim fileToOpen, x, total_file_path, m,title_row...Setmysht = ActiveSheet ' mysht.UsedRange.Clear title_row = 1 m = 0 i = 0 ss = VBA.InputBox...c.EntireRow.Copymysht.Cells(Lrow, 1) Set c =.Cells.FindNext(c) Loop
前面说过了文件的读取、写入,那么在操作文件之前,一般我们需要找到操作的文件的路径,VBA对象库中,有一个FileSystem的模块,里面有关于文件操作的一些函数: ?...MsgBox "文件不存在:" & vbNewLine & FileName End If End Sub 这样处理,程序在运行过程中,如果不存在文件,MsgBox会跳出提示框告诉我们文件不存在,这样就比直接中断程序运行友好多了...VBA.Dir(FileName)在FileName这个文件不存在的情况下,会返回空字符串,文件存在的情况下会返回文件的名称,所以我们可以根据它的返回值来判断文件是否存在。....xlsx的文件 '第一次调用返回第1个符合条件的,没有的情况下会返回空字符串 fn = VBA.Dir(strdir & "\*", vbDirectory) Do Until...fn = "" Debug.Print fn '一定要再次调用不带参数的Dir函数,这将返回下一个符合条件的 fn = VBA.Dir() Loop
Python诞生于1991年,比Excel晚了六年。虽然Excel很早就开始流行,但Python花了更长的时间才在某些领域(例如web开发或系统管理)得到采用。...如果你有多个一直在使用的函数,可能希望在工作簿之间共享它们。跨工作簿共享VBA代码的标准工具是加载宏,但VBA加载宏缺乏一种可靠的分发和更新方式。...现在最流行的版本控制系统是Git。它最初是为了管理Linux源代码而创建的,从那时起,它征服了编程世界,甚至微软在2017年采用Git来管理Windows源代码。...由于Python文件很容易用Git跟踪,因此电子表格工具最重要的部分将在你的控制之下。 虽然本节称为编程最佳实践,但主要是指出为什么Excel比Python等传统编程语言更难遵循这些最佳实践。...它的核心依赖于与Excel相同的PowerQuery和PowerPivot功能。商业计划允许你在线协作和共享仪表板,但这些仪表板与桌面版是分开的。
标签:VBA 第一篇:使用VBA复制、插入、移动、删除和控制图片1 第二篇:使用VBA复制、插入、移动、删除和控制图片2 情形11:设置图片位置在单元格中间 图片是基于该图片的顶部和左侧进行定位的。...myImage = ActiveSheet.Shapes("Picture 6") myImage.Flip msoFlipVertical End Sub 情形13:重新调整图片大小 下面的代码锁定纵横比;...因此,调整宽度或高度的大小将保持图像的比例。...") imageWidth = 100 myImage.LockAspectRatio = msoTrue myImage.Width = imageWidth End Sub 将纵横比设置为...msoSendToBack Do While myImage.ZOrderPosition < imagezpositon myImage.ZOrder msoBringForward Loop
任何一个新用户接触Excel,都不会产生太大的恐惧感。 随着学习的一步步加深,对现有的功能的重复性繁琐操作开始提出一些要求,能否帮我自动化一些来处理,这样就带出了宏和VBA的层面。...可以用录制宏的方式,记录当前的操作步骤,再结合一点点的VBA知识,用编程语言的变量、循环、选择结构等,将自动生成的宏代码略略加工一下,即可完成自动化的重复性工作,开始脱离界面的重复性机械操作。...没法达到宏和VBA的使用水平也不必沮丧,因为有一些走得更远的人,已经不止于让自己手头的工作自动化起来,还为大部分初中级用户做出了插件,让代码封装起来,直接回归界面化操作输出给普通用户使用。...Sqlserver的功能较Excel这样的大众工具软件更难理解,后面会再次写相关文章介绍以数据分析师的视角,最应该掌握什么功能,哪些功能投入产出比更高。...像录制宏一般地自动生成SQL语句 Excel里有录制宏功能,帮助我们快速学习VBA,在Sqlserver上,同样有类似于录制宏的界面操作实际对应的SQL脚本是什么的功能。
其中,有35种创新药物没有提供临床开发开始日期,10种药物没有提供IND申请的最初提交日期,25种药物的最初临床开发发生在美国以外,没有提供首次人体试验日期。...治疗类别的趋势 按治疗类别分组的近期创新药物的临床开发时间显示了一些有趣的差异 (图2a)。最近的抗病毒产品的开发时间比其他产品类别短。其他的类别之间差异比较小。...加速计划对临床开发时间的影响 美国FDA有一系列的计划来促进某些药物的开发,例如那些有望帮助解决未满足的医疗需求的药物。...值得注意的是,在美国,被认定为孤儿药的产品有资格从美国FDA获得额外的两年市场独占权,这抵消了与更长的临床开发时间有关的额外成本。...近年来,创新药物的临床开发时间保持稳定。大多数产品在临床开发中花了十年的时间,而其他产品则需要更长的时间。然而,美国FDA的加速开发计划显然缩短了从进入临床试验到药物批准的路径。
文章目录 VBA宏编程简介 准备工作 打开宏功能 打开“开发工具”选项卡 VBA编程 示例任务介绍 文件宏 全局宏 VBA宏编程简介 VBA编程是Office系列软件自带的编程功能,也就是说不只是Excel...创建宏主要有两种方法,一种是录制宏,也就是将人的一些操作录下来,需要的时候执行宏就可以自动重复这些操作;另一种就是本文要介绍的,通过VBA编程来自己写一个宏。...准备工作 Excel默认是没有打开宏功能和VBA编程功能的,因此需要打开一下。...Loop是Visual Basic中的循环语句之一,当逻辑条件为真时进入循环,当逻辑条件为假时退出循环。本程序中这个循环是为了一行行遍历Sheet1这张表,直到最后一个学生。...这里的0和#都是一个代号,0代表即便这一位上没有数字也要显示一个0;#代表这一位如果有数字就显示,没有就不显示;%结尾会自动转成百分比显示,具体可以看Excel的帮助或是这个链接:Excel自定义格式。
宏是Excel中最好的工具之一,可以让我们节省时间。 使用VBA宏,可以自动执行重复、单调且有时非常无聊的任务。在某些情况下,这有可能将数小时的工作减少到几分钟或几秒钟。...1.设置可视化界面 使用VBA的用户窗体创建进度条。首先,在VBE中,单击“插入——用户窗体”,结果如下图1所示。...PCT = 计算出不断增加的百分比,从1/N开始,以N/N结束(即1%到100%)。表中的记录越多,百分比计算的粒度就越细。...Call UpdateProgress(Pct)行将计算出的百分比(Pct)传递给UpdateProgress,该百分比将显示在框架的标题中。...“DoEvents”指令允许VBA通过键盘检测用户交互,这在用户可能希望早点退出长时间循环的宏很有用。
完美的企业是不存在的,而企业的赢利能力和持续发展往往是让自己的长板更长,短板只要不制约公司发展即可。...每个企业擅长什么,要在自己所擅长的领域与其他企业做对标,防止在自己的长板上被超越,要在自己的长板上学习别人的长处,让自己的长板更长。过度聚焦于短板就会发现,大量的资源投入到产出比更低的地方是不划算的。...企业间的竞争往往是谁的长板更长而取胜,而不是对比企业的短板而取胜。一个消费者选择一个品牌的产品,更看重的是该产品的长处,看重该长板能够为消费者带来的价值。...上下游的对标管理是非常重要的,就象两个人携手走路,一个人走得快了,走得慢的人就会成为累赘,企业上下游合作也是这样的道理,如果上游企业发展速度快于我们企业的发展速度,他们必然会选择与其他企业合作,从而满足自己发展速度的业务需求...有很多的方法研究一个企业并获得该企业的相关经营指标,对于上市公司,除了关注上市公司的财务报表之外,还可以通过上市公司股东大会上企业高层给股东会提交的公司发展战略报告、未来投资计划等相关的材料,如果条件允许
[省份] Myrecordset.MoveNext Loop UntilMyrecordset.EOF End With End Sub 这段代码运行速度相当快...图4 3.可以使用如下所示的命名区域代替硬编码单元格区域: Myrecordset.Open “Select Distinct [省份] from [命名区域]” 4.可以编写VBA代码遍历数组来获取唯一值...对于ADO初学者来说,先集中了解最常用的参数:Provider、Data Source、Extended Properties。 1.Provider:告诉VBA正在使用哪种类型的数据源。...2.Data Source:告诉VBA在哪里找到包含所需数据的数据库或工作簿。使用Data Source参数,要传递完整的数据库或工作簿路径。...使用第一类连接字符串(即使用Microsoft.Jet.OLEDB),有助于避免向后兼容问题,而且比Microsoft.ACE快3倍。
=======ExcelVBA===== VBA编程实现不重复随机数输出。VBA里的随机函数是RND,在工作表中随机函数是RAND,一字之差,可要记好了。...number 的值决定了 Rnd 生成随机数的方式。 对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。 ...在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器(若带参数,则产生由参数对应的一个特定序列的随机数),该生成器具有根据系统计时器得到的种子。...注意:若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。...") Do Until d.Count = number s = Int(Rnd * UB_num + 1) d(s) = "" '这里用字典进行排除重复 Loop
从最初的几个人兼职开发到正式组建团队,再到整个项目快速发展,这中间有七年的时间整个团队全都是研发人员,没有一个销售。...在这个过程中,整个行业发生了一件不得不关注的大事件,美国国家安全局自 2007 年起开始实施的绝密电子监听计划——棱镜计划曝光,这起事件让所有人意识到了做国产基础软件的重要性,也让包括张磊在内的整个团队意识到是时候把商业化提上议程了...这其中,众多生态合作伙伴和用户也给了国产操作系统一定信任和空间,让技术有了用武之地,这是一条需要集众人之力才可以走得更远的路。” 3在操作系统的世界,我们如何走得更远?...未来,如果我们想在操作系统的世界中走得远。...一个人可以走得很快,一群人才可以走得远。即便我们还有很多路需要走,但已经看到了此时的操作系统行业正在快速升温,何不一起加入 openEuler 社区,共同期待未来的世界之巅有我们的身影呢?
由以上原理,可以编写实现二分查找的VBA代码: 'passArray代表传递给函数的数组 'FindNum代表要查找的数值 Function BinarySearch(passArray() As Long...FindNum = passArray(middle) Then BinarySearch = middle Exit Function '如果查找的数值比中间元素小...'则修改右侧下标 ElseIf FindNum < passArray(middle)Then high = middle - 1 '如果查找的数值比中间元素大...'则修改左侧下标 Else low = middle + 1 End If Loop '没有找到返回-1...图3 下面为二分查找算法的VBA代码图片版: ?
与办公室应用程序一样,它包括联合的服务器和基于互联网的服务。最近版本的 Office 被称为 “Office system” 而不叫 “Office suite”,反映出它们也包括服务器的事实。...该软件最初出现于九十年代早期,最初是一个推广名称,指一些以前曾单独发售的软件的合集。当时主要的推广重点是购买合集比单独购买要省很多钱。...最初的 Office 版本只有 Word、Excel 和 Powerpoint; 另外一个专业版包含 Microsoft Access;随着时间的流逝,Office 应用程序逐渐整合,共享一些特性,例如拼写和语法检查...、OLE 数据整合和微软 Microsoft VBA(Visual Basicfor Applications)脚本语言。...它私有的 DOC 格式被尊为一个行业的标准,虽然它的新版本 Word 2007 也支持一个基于XML的格式。Word 也适宜某些版本的 Microsoft Works。
学习Excel技术,关注微信公众号: excelperfect 经过前面一系列关于二叉树的知识的学习,我们对这种数据结构已经有了一定的基础。下面,我们来看如何使用VBA实现二叉排序树。...若它的右子树不为空,则右子树上所有结点的值均大小它的根结点的值。 它的左、右子树也分别为二叉排序树。”...下面我们以数组{62,88,58,47,35,73,51,99,37,93}为示例数据,使用VBA代码将其构造成一棵上图1所示的二叉排序树。...Else Set pTree =pTree.RightChild End If End If Loop...,然后进行比较,比根结点小的数据往左子树插入,比根结点大的数据往右子树插入。
改写数据流和读取是类似的,只需要逐个扇区去处理就可以,需要注意的是,如果改写的数据长度比原来的数据长度变大了,这时候要注意是否会超越扇区的边界,如果超过了,那么就得改变文件的长度,处理起来就会很麻烦了...'改写数据流 'dir_name 需要被改写的文件名称,是复合文档中的文件名称 'WriteBytes 需要改写为的数据Byte数组 'Return 返回出错信息 Function ReWriteStream...As Byte) As String If cf.h.Exists(dir_name) Then ReWriteStream = ReWriteStreamByDirIndex(VBA.CLng...Next cf.r.WriteFile b '下一个扇区 miniSID = cf.MiniFAT(miniSID) Loop...End If Next cf.r.WriteFile b '下一个扇区 sid = cf.FAT(sid) Loop
~ 2、网页内容抓取能力不足 Excel另外一个弊端是网页抓取的力不从心,之前也用VBA实现过一些朋友的网页内容抓取需求,也许自己能力有限,没有充分发挥VBA的强大,对于反爬、密码验证等问题处理的一直不太好...如果你对《阿凯的Excel》插件了解的话,知道我编写的插件是可以实现这个功能的。...但是当这个插件面对的是上百万行数据的时候,我只能Say No了~ 最初和那个朋友说要不用Python实现吧,对方是拒绝的,然后我用QQ远程桌面的形式给他展示了用Python处理的速度。...这个消息在Excel圈应该都知道了,我很乐见这个消息,一是可以告别无法系统学习的VBA,二是Excel的代码效率真的需要提高哇!但是我想等到微软真正内嵌怎么也要五六年吧!...在这之前我要苦苦思考,探索如何将Excel与Python结合教学了,希望可以自己先研究出一种方式,前路漫漫~ 新的一年,自比蜗牛,认定的事情,无论走的多慢都不会停下脚步的!!
以前我在某外企银行实习的时候,需要处理将近七年的财务报表,如果按照传统的方式,我估计七天七夜都处理不完,就更别提分析了。一般来说外企的电脑软件限制非常严格,有专门的IT把控。...很多软件是下不了的,即使是python这样的开源工具也不行,下载软件都需要找IT审批。 无奈之下,我只能用起了VBA。直白点来说,VBA的执行效率确实不咋地,做稍微复杂点的功能总是卡死(假死)。...金融外企招聘要求VBA Intel的数据分析工具 尽管Excel和VBA会被某些企业所看重,但是大家要知道,世界很多知名的外企还有国内的大型企业,做数据分析的工具早就不是Excel了。...或者你做完之后,才发现前面有个数据的处理错了,然后又要由头开始检查一遍…… 耗时耗力,这一类报表的做法,常见于最初级的表哥表妹!...FineReport能够将报表填报实现平台化,对上可以快速分析汇总、制定相应计划,对下可以提高数据采集汇率、减少填报错误,还能有流程审批的功能,称得上是完美了!
'2017年2月1日05:43:35 '16年想开发的最后一个Excel代码经过漫长的酝酿与研究终于编写完毕,解决了超过一百万行的csv文件Excel打不开的问题,自动分割为多个sheet,并且数字超过...'也可以用于平常打开csv文件,速度比直接打开快一倍,还可以用于指定行数分割,多文件合并,csv批量转Excel。...'原先有数值会增加一倍时间,跟直接打开相等 li = li + 1 Loop Next Debug.Print (Time - st) * 24 * 60 *...'原先有数值会增加一倍时间,跟直接打开相等 li = li + 1 Loop Debug.Print (Time - st) * 24 * 60 * 60...不保存关闭约1.4e-11s可忽略不计 Next Debug.Print (Time - st) * 24 * 60 * 60 开启功能 End Function Sub 关闭功能() '关闭一些功能加快 VBA
领取专属 10元无门槛券
手把手带您无忧上云