展开

关键词

Excel VBA解读(158): —认识对象

学习Excel技术,关注微信公众号:excelperfect在前面的一系列文章中,我们详细讲解了集合、组和ArrayList,我们通常可以使用它们来存储成组的,方便后面的操作。 接下来的几篇文章,我们将详细讲解。在VBA中,可以存储不同的类型,并且每个元素都有唯一的键,可以方便地访元素,其包含的属性和方法,能够更方便地操作。 创建对象在标准VBA库中不包含Dictionary对象,因此要创建并使用Dictionary对象,先要连接到Dictionary对象所在的库文件Microsoft Scripting Runtime 后期绑定当然,也可以事先不设置对“Microsoft Scripting Runtime”库的引用,而是使用CreateObject函直接编写声明对象变量的代码:Dim dict As ObjectSet 添加元素使用Add方法来添加元素:dict.Add键, 值注意,中应不存在要添加的值的键。修改元素值dict(键) = 值将指定键的元素值修改为指定值。

45520

Excel处理你是选择Vba还是Python?当然是选pandas!

与需求 此案例的如下:- 每个开单人员的销售记录- 描述为:销售员张三(开单部门),把xxx货品(货品编码、货品名)售出了5件(量),此笔订单总价为2000元(价税合计)- 上述的括号部分就是表中的列标 vba 的解决方案尽可能采用了面向对象的方式进行,下图为主要:- m_main 模块包含整个主流程逻辑,入口方法 main- 类模块 D_ArrayVar 与 D_GVar ,是为了做到 源的列位置变化 的高级用户,可能会觉得直接使用 +组 的方式即可完成,但注意,直接 +组 方式会导致代码难以维护 Python 的方案 上面说的 vba 方案,我大概花费了接近1小时的时间(vba 中编写类模块太繁琐了 这次我们直接使用 pandas 读写 excel ,而无需使用 xlwings 库首先定义需要的列与每列的统计方式:- 其中核心是 g_agg_funcs ,他定义了每个输出列的统计方法。 ,你可能会,还有一个按照货品的汇总果啊,这是非常简单,因为汇总方式是一样的,只是汇总段有变化而已。

19620
  • 广告
    关闭

    2021云+社区年度盘点发布

    动动手指转发活动或推荐好文,即可参与虎年公仔等百份好礼抽奖!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Excel VBA解读(161): 对象操作示例

    excelperfect下面列举对象的一些操作示例和技巧,进一步理解的应用。 经过前面一系列文章的学习,大家一定会想到使用组或者集合作为值。但是,还有更好的办法,就是使用类模块。如下图1所示,我们想要在不同的键中分别存储图示工作表每行。 ? 将存储到中 For i = 2 To lngLastRow Set oStud = New clsStudent oStud.StudentID =Worksheets(Sheet1).Cells 图2示例2:获取唯一值可以利用键唯一这个特性,来获取列表唯一值。例如下图3所示的工作表,有多个重复,现在想要获取这些的不重复值。? Sheet2) 工作表最后一行 lngLastRow = wks.Range(A & Rows.Count).End(xlUp).Row 错误处理 On Error Resume Next 遍历工作表并在中添加

    65620

    VBA库——Excel

    当我们把Excel当作库来处理的时候,只要满足库处理程序的组织的规则,也是可以得到想要的果的。 而如果在输入的时候比较随意,操作Excel库的程序会按照自己的规则去处理这些,可能得到的果就不是想要的。 从这里就可以看出,把Excel当作库处理,调用ADODB去读取的时候,其实就是让一个程序去操作Excel文件,这个程序可以解析Excel文件的,直接从文件中去读取。 这样能够发现库的规则对这些不规则的造成的一些。 但是,如果很规范的情况下,处理Excel的时候,相比我们自己用VBA调用Excel对象模型,组、等方式来处理,专业的库处理程序会更强大,因为毕竟这些程序都是专业程序员编写的,里面使用了很多好的

    26810

    Excel VBA解读(159): 对象的基本操作

    添加元素使用Add方法,添加元素项。其语法为:对象.Add Key, ItemAdd方法有两个参。参Key指定元素项的键值,参Item指定元素项的值。 End Sub从代码中可以看出,参Key可以指定任意类型的值,参Item也可以指定任意类型的值,甚至可以是组、集合或者。 End IfEnd Sub在If条件语句中判断是否对象是否存在指定的键,并给出相应的信息,运行果如下图2所示。? 图2统计元素使用Count方法返回中元素的量,其语法为:对象.Count例如,代码:Sub testCount() Dim dict As Object Set dict =CreateObject ,96 dict.Add 6, 88.98 dict.Add 2019-8-15, 考试 MsgBox 该元素量: & dict.CountEnd Sub运行果如下图3所示。?

    59820

    为什么python比vba更适合自动化处理Excel

    每当有人发布关于 python 处理 Excel 的文章,总会有人只看了标就评论:vba处理已经足够,完全没必要使用python。 我喜欢用实际案例说明,本文使用泰坦尼克号沉船事件中的乘客信息表:实现几个简单分析需求:找出多人(2人或以上)一起登船的组的量列出这些人的信息是否存在最幸运的亲朋好友(多人一起登船,同时全部人都获救 ----操作 Excel等于处理吗?初学者往往误以为操作 Excel 就是在处理,实际上是两回事。需求是:姓名与住址列内容通常很长,希望最终Excel显示的时候,使用缩小体填充。 ----vba 使用组+,就是高效率?大部分不经思考,张口就反对 python 的同学,都是对自己的 vba 组+ 的技能有着迷之自信。 而 python 就能做到,比如以下的函,可以让你输入3个,并且由你决定前2个的计算方式,最后与第3个做乘法:果时,第一个乘以10 + 第二个乘以100(这是变化的逻辑,由使用函的人自行决定

    24030

    聊聊我的VBA学习

    1、走进VBA11年前,刚工作的我开始接触Excel,我还记得的同事第一个:我写个1,怎么能拉下去的时候变成1、2、3、4、5? ,我是认认真真的看了,碰到不懂的还到ExcelHome网站去看论坛,。 发现这个后,我就去找与算法方面的书,专业程序员都是推荐学习《算法导论》,我这个没有计算机基础的人看这本书还是很困难的,后来找到一本《大话》:undefined这本书将那些晦涩难懂的 看完这本书,虽然里面没有任何VBA方面的东西,但是我觉得对写VBA程序帮助非常的大,至少个人认为自从对和算法有了一定了解后,写出来的VBA程序与之前相比,有了质的变化。 然后再去看看专门讲解VBA的书籍,期间混合着看一些和算法的东西。

    17570

    Excel VBA解读(160): 对象的基本操作(续)

    图2 排序操作编写自定义函,我们可以实现按键或者按值对元素排序。 六年级,189 调用过程打印元素 PrintDict 原,dict 排序并输出排序后的果 Set dict = SortByKey(dict) PrintDict 键按升序排列,dict 排序并输出排序后的果 Set dict = SortByKey(dict, xlDescending) PrintDict 键按降序排列,dictEnd Sub打印元素项Sub PrintDict 六年级,189 调用过程打印元素 PrintDict 原, dict 排序并输出排序后的果 Set dict = SortByValue(dict) PrintDict 键按升序排列,dict 排序并输出排序后的果 Set dict = SortByValue(dict, xlDescending) PrintDict 键按降序排列,dictEnd Sub打印元素项Sub PrintDict

    87450

    一起学Excel专业开发02:专家眼中的Excel及其用户

    工作表:用于程序的存储在程序代码中,在程序代码处理中,经常要用到一些,而工作表就是一个天然的存放地,我们可以在工作表单元格中存放、文本、表格或图片,供程序使用,而VBA程序代码可以方便地访这些 Excel更擅长计算,VBA擅长通用的编程,将两者合理合运用,可以开发出高效的应用程序。4. VBA与用户窗体VBA是一种专业的编程语言,内嵌于Excel中。 Excel中对象经过层层组织,成了Excel对象层次模型,其层次如下图3所示。? 3.VBA开发人员:精通VBA,在其工作簿中广泛使用VBA代码,相信所有都能用VBA解决,但因为对Excel缺乏充分的了解,所以不能很好地利用Excel的特性。 在判断何时使用Excel解决,何时使用VBA解决,以及何时将两者合来解决时,缺乏经验。

    31020

    我经常翻阅的Excel技术书

    Excel 2016 Formulas》中文版译名:《中文版Excel 2016公式与函应用宝(第7版)》,最经的宝系列丛书之一,详细讲解了Excel的函以及公式的方方面面,以大量示例展示了 这本书可以与《中文版Excel2016公式与函应用宝(第7版)》互补。 这本书中的引用区域、R1C1样式的公式、名称、高级筛选、组等内容是《中文版Excel2010高级VBA编程宝》的有力补充。 这本书按照母顺序详细讲解了VBVBA语言的语句、过程和函,非常方便查找。《VBA Developer’s Handbook》中文版译名:《VBA高级开发指南》,非常古老的一本书,但仍然没有过时。 欢迎到知识星球:完美Excel社群,进行技术交流和提,获取更多电子资料。完美Excel社群2020.8.31动态#VBA# 类模块技术入门

    38320

    个人永久性免费-Excel催化剂功能第47波-VBA开发者喜爱的加密函

    外话本人也是从ExcelVBA语言入门了编程世界的,然后很偶然的机会接触到VSTO,并且在一位热心的网友一路的帮助下,算是入门了C#语言,现在可以灵活地用C#实现自己想要的一些小功能(大部分是抄百度和 总在我过往发表的众多自定义函里,大部分直接照搬了.Net Framework类库里的函,让其能够在Excel环境以自定义函的形式来使用,当中也收到许多反馈说能用自定义函的人都自己写VBA代码, 不会写代码的人也没必要用自定义函,文件分发出等等如此这般的回复。 Excel的学习和使用方法第5波-使用DAX查询从PowerbiDeskTop中获取源第6波-导出PowerbiDesktop模型第7波-智能选区功能第8波-快速可视化第9波-透视表自动设置第 ,财务表哥表姐最爱第32波-空行空列批量插入和删除第33波-报表形式转标准源第34波-提取中国身份证信息、农历日期转换相关功能第35波-Excel版最全单位换算,从此不用到处百度找答案第36

    10510

    各项工具大pk,分组聚合哪家强?

    小小明:「凹凸」专栏作者,Pandas处理专家,致力于帮助无从业者解决处理难。凹凸们,大家好先看一个小需求,其实是很常见的分组聚合。? 今天我将带大家分别使用MySQL、Excel、Pandas、VBA和Python来实现这个需求。这么齐全的应该算是全网首发吧!当然也是为了让大家对分组聚合代码层面的实现能够更加熟悉。? Excel实现分组统计首先创建透视表:?然后将对应的段拖动到正确的位置:?然后打开透视表选项取消这两项勾选即可:? :{201911: , 201912: , 201913: } 借助Pandas转换为表方便查看:pd.DataFrame.from_dict(result, index, columns=) 果 今天我给大家同时演示了MySQL、Excel、Pandas、VBA和Python实现分组聚合,通过对比,或许大家能自己总出各项工具的优劣和适用场景。

    12020

    分析经图书大全,专治各种不懂!

    ,多角度的剖析,融汇Excel Home万千与答案,彰显Excel丰富内涵。 作者:郭刚,陈峰 等简介:本书分为五篇,其中第一篇是VBA基础知识篇,主要内容包括VBA的概念、宏和VBA开发环境;第二篇是VBA基础语法篇,主要内容包括VBA语法基础、VBA基础语句、程序控制语句 Excel 2010的用户界面、工作表控件、界面设计、XML与VBA、加载宏和库编程等;第五篇是综合实例与面试答篇,主要讲解了成绩管理系统和日程安排表两个综合实例,并提供了30多个近几年各大公司经常考察的面试 挖掘在CRM(客户关系管理)中的角色;SPSS Clementine 11.0版本所拥有的所有节点的详细操作指南,包括流、段操作节点、建立CLEM表达式,建模节点和生成模型节点等。 第一部分讲述MySQL复制,包括高可用性和横向扩展,第二部分介绍建健壮的中心时监控和性能方面的,第三部分给出其他MySQL相关内容,包括云计算和MySQL集群。

    43480

    ETL」从民工到白领蜕变之旅(七)-将Excel(PowerQuery+VBA)的能力嫁接到SSIS中

    所以,若可以在标准的SSIS流程中引入PowerQuery的轻量化处理功能,将原有复杂的,先进行清洗整合后,变为一个干净的源供SSIS调用上传至库中,这时整个方案的可行性和性价比都非常可观 同时PowerQuery的弊端也因为SSIS的介入得到解决,如不能加载到其他目标位置仅能进入模型层,抽取性能,每次全量抽取一没必要二性能严重受影响。 性能及费用不可否认,使用PowerQuery来清洗很慢,同样加上使用COM接口的方式来读取Excel文件也很慢。 同时也不必纠服务器安装个OFFICE软件有什么版权licence,一个OFFICE软件,也没几个钱,相对日益昂贵的开发人工成本来说,不算什么,何况OFFICE365的订阅模式,可以一个licence *系列文章从民工到白领蜕变之旅(一)-工具总览 https:www.jianshu.comp2bd3f90206ec从民工到白领蜕变之旅(二)-重温Excel催化剂经 https:www.jianshu.compcb89929bb8ae

    13520

    VBA库——简化程序编写-去重

    说到去除重复,在VBA里首先想到的应该是的应用,在VBA调用外部对象01:Dictionary(去除重复)里也有过介绍。 除了使用VBA外,如果只是去除Excel的重复,Excel内置的功能:-删除重复值,这个功能其实已经非常的好用了。 如果非常的规范,使用VBA调用ADO也是可以方便的去除重复:Sub ADO去重() Dim AdoConn As Object Set AdoConn = VBA.CreateObject(ADODB.Connection ) 打开库 AdoConn.Open Provider =Microsoft.ACE.OLEDB.12.0;Data Source= & ThisWorkbook.FullName & ;Extended 代码和汇总、查找等一样,仅仅是修改了sql语句,相比使用,代码更加的简单,在需要更换去重段条件的时候,也更加的方便。

    11010

    文件操作——读取

    我们使用Excel VBA绝大多情况都是在处理Excel,一般都是直接读取Excel,也就是使用Workbooks.Open,随着VBA使用的深入,我们要处理的可能不局限在Excel里,有时候也会需要去读取外部的 1、txt文本文档的读取:在Windows系统里,我们一般都使用过txt后缀的文本文档,这种文件的是非常简单的,所有的都是按顺序排列的,不存在特殊的Excel文档的就不是这样的,07版本之前,也就是后缀为.xls的,那时候Excel是使用一种叫做复合文档的存储的。 07版本之后,也就是后缀为.xlsx的,其实它就是一个zip的压缩包,解压出来后主要一些xml的文本文档,和我们了解的txt文本文档是一样的,作为一个单独的文本文档来说,它就是按顺序排列的,没有特殊的 将ANSI编码的节转换为Unicode str = VBA.StrConv(b, vbUnicode) Debug.Print strEnd Sub没出什么的话,程序就能输出你刚才在test.txt

    20630

    VBA还能活多久?——完美Excel第169周小

    我想,也许是VBA运行已经很平稳,不会给Excel带有,而且使用VBA开发的Excel应用也没有遇到。 如果VBAExcel带来或者在Excel版本更新后以前使用VBA开发的应用遇到了很多,我想Microsoft一定会对VBA进行更新的。取代VBA的会是谁? ----微信公众号本周推送的文章本周的文章仍然侧重于Excel公式和操作技巧,7篇文章名和链接如下:VBA10-4:使用VBA操控Excel界面之设置工作簿视图和窗口社群答疑精选01:不重复统计 (续)Excel小技巧45:2个工作表操作习惯,利已也利他Excel公式技巧45:按出现的频率依次提取列表中的Excel小技巧46:在单元格中输入连续的6种方法资源分享:电子地图下载与拼接器-- #VBA复制文件到指定的文件夹并重命名仅显示组成SUMIFS函果的同步多工作表指定区域的快速给所选单元格添加前缀

    58840

    Excel应用实践06:进行多条件统计

    这是在知乎上看到的一个,我试着用VBA来解决。欢迎大家就自已使用Excel中遇到的或想要的解决方案提,我将尽力解答。:怎么用EXCEL多条件统计重复次? 因此,我将场次、考场编码、试室、试室编码、报考专业连接起来,单独放置在列G中,将它们作为的键值,这样就得到了不重复的。 在填充键的同时,统计重复的,作为键的元素值,从而得到了每个试室每个专业的人。 然后,再将键进行拆分,输入到右侧的场次、考场编码、试室、试室编码、报考专业对应单元格中,并将对应的元素值输入到报考人对应的单元格,这样就得到了统计。 Set myDict =CreateObject(scripting.dictionary) 遍历列G中的并将其放置在中键值为不同的组合 中键对应的值为每种组合的量,即专业报考人

    22020

    Excel VBA解读(156): —ArrayList

    VBA中,ArrayList与内置的Collection对象类似,但提供了更丰富的功能,包括排序、组转换、删除所有元素项目等。 alCol.Add Excel Debug.Print alCol(0)End Sub运行果如下图2所示。? alCol.Add Excel alCol.Insert 0, Office Debug.Print alCol(0)End Sub运行果如下图3所示。? 运行果如下图4所示。? alCol.Add Excel alCol.Insert 0, Office For Each item In alCol Debug.Print item Next itemEnd Sub运行果如下图

    1.4K10

    Python对比VBA实现excel表格合并与拆分

    日常工作中经常需要对一系列的表进行合并,或者对一份按照某个分类进行拆分,今天我们介绍Python和VBA两种实现方案供大家参考~1.Excel表格合并    1.1.Python实现表格合并     1.2.VBA实现表格合并2.Excel表格拆分    2.1.Python实现表格拆分    2.2.VBA实现表格拆分1.Excel表格合并我们在日常工作中经常会导出一些,但是这些较大可能是按照某个分类形成的单独表格 ,我们看到一共有三份,和上面果一致? 思考:如何在原有《汇总表》中新建新的页签用于存放拆分(可以参考《实践应用|PyQt5制作雪球网股票爬虫工具》7.2财务处理并导出)2.2.VBA实现表格拆分VBA实现表格拆分的逻辑是 如果在里        If D.exists(TempStr) Then            将放到对应的页里            Set Sht = Worksheets(TempStr

    17630

    相关产品

    • 人工智能

      人工智能

      提供全球领先的人脸识别、文字识别、图像识别、语音技术、NLP、人工智能服务平台等多项人工智能技术。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券