精华内容
下载资源
问答
  • vba和Python基础

    2018-11-13 19:29:51
    VBA和Python基础学习视频,用来学习数据分析的基础。。。
  • Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也...

    Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。

    5d40f6e469665202.jpg

    该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic for Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。(推荐学习:Python视频教程)

    Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。

    Python是一种解释型脚本语言,可以应用于以下领域:

    Web 和 Internet开发

    科学计算和统计

    人工智能

    教育

    桌面界面开发

    软件开发

    后端开发

    据外媒报道,微软正考虑添加 Python 为官方的一种 Excel 脚本语言,如果获得批准,Excel 用户将能够像目前使用 VBA 脚本一样,使用 Python 脚本与 Excel 文档、数据以及一些 Excel 核心函数进行交互。

    目前为止,超过 3883 人赞同将 Python 集成到 Excel 中,成为 VBA 替代品,甚至像单元格函数 functions (=SUM(A1:A2)) 也可以用 Python 函数 sum(a1, a2) 来代替

    目前微软官方已经作出积极回应,通过发起投票来收集更多用户的反馈信息,在线调查用户想要如何在 Excel 中使用 Python 。

    有用户认为,如果微软走这条路线,那么为便于日常使用,微软也需要在所有其他 Office 应用中支持 Python 。

    更多Python相关技术文章,请访问Python教程栏目进行学习!

    以上就是python和vba学哪个的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 7年C#,5年EXCEL VBA,3年PHP,2年python,我来谈谈。你就辅助办公office为主,直接vba别犹豫。...对象模型规范学完vba,再看python那些库才反人类openpyxl,xlrd,xlwt,xlwings。竟然还有改接口的...

    7年C#,5年EXCEL VBA,3年PHP,2年python,我来谈谈。

    你就辅助办公office为主,直接vba别犹豫。

    你要是写服务类的,写完放在服务器上,不分发客户端,配置好一份环境,提供出web接口给大家用,那你用Python,这个也不用犹豫。

    所以还是看应用场景和环境。

    对象模型规范

    学完vba,再看python那些库才反人类openpyxl,xlrd,xlwt,xlwings。竟然还有改接口的事儿。今天引用完的包,一升级不好使了,气人不。

    VBA不一样,大厂微软风范,很规范。其实本质上其实你就用的是人家设计好的对象嘛,自己写逻辑。谁的内置对象关系设计的好用谁的。

    不用过多操心用户界面设计

    vba在excel里,界面你也不用写了。参数直接用工作表单元格里写。按钮一拖就是一个。除了拖控件还可以用各种形状当做按钮,各种形状特效一设也挺美观。还不够用?还可以直接自定义ribbon菜单栏。一个xlsm文档就是程序,又是参数配置界面,又是数据源,又能展示数据结果。如果你已经会了 vb (指的是vb .net那个编程语言)或者c#,写xll加载项还也挺好用的。当然这不在讨论范围,因为他不是vba。

    不会写代码可以录

    vba不会写了还能录代码。录完,会英语直接就看懂了,改吧改吧就能用了。如果咱平时就是经常用Excel的。很容易理解一段代码代表了什么操作。毕竟是你自己录的代码啊,你操作了什么你还不知道嘛。而且调试的时候单步执行,很直观,一句一个效果能看得到的。学习起来更容易。

    而Python不会写的你要查文档,写文档的人啥德行,咱也不知道。除了xlwings,你基本上都是运行完了才能看到结果。中间哪里错了也不知道,咱也没处问。对于小白调试起来很有难度的。

    分发容易

    最后你拿python写完给谁用啊?是不是还要教别人怎么用命令行。或者再给python配个UI?配置个python环境?打包exe?是不是还要64位,32位各搞一套。

    不如用vba给交付一个xlsm搞定一切。只要是可以有excel,双击打开,启用宏,点你设计好的按钮开跑就完事了,方便的要死。

    总结

    难学?这玩意看天分。我觉得这里得谈“及时满足”。你能以最快速度做出一个能用的程序,就能更快速带来学习满足感,你就不会觉得它难。就会更有兴趣去钻研学习。反观学习坡度太大会打消积极性,就更容易放弃。

    所以结论是,我还是觉得vba简单啊,因为我是小白我能录,我是大神我能写。改版面格式,快速填表模板一类的小程序,2分钟就能做好,即刻交付给同事们一起使用。运行起来不用配环境,爽爆了。

    评论有人提到兼容性,确实虽然vba代码也有兼容性的问题,但基本上不引用外部库的话,纯玩excel已有对象的话,基本没有兼容性问题。很少出现这个代码换个版本的office的就运行不了的情况。尤其版本只升不降的话就更少了。你想想excel还在支持宏表函数,还在支持xls格式,还在支持Lotus公式,微软还在支持老掉牙的玩意,就问你感不感动?

    而Python,兼容性?怕是换个电脑都不能直接运行吧。配环境,下各种包对新手来说太不友好了。

    展开全文
  • 举一个例子吧,就简单的数据筛选删除。由于我不熟悉VBA,所以通过录制宏来实现VBA的功能,具体操作是筛选品牌2并删除,只保留品牌1的数据,查看代码如下:Sub 测试()'' 测试 宏''ActiveSheet.Range("$A$1:$I$...

    举一个例子吧,就简单的数据筛选和删除。

    由于我不熟悉VBA,所以通过录制宏来实现VBA的功能,具体操作是筛选品牌2并删除,只保留品牌1的数据,查看代码如下:

    Sub 测试()

    '

    ' 测试 宏

    '

    '

    ActiveSheet.Range("$A$1:$I$384").AutoFilter Field:=1, Criteria1:="品牌2"

    Rows("29:29").Select

    Range(Selection, Selection.End(xlDown)).Select

    Selection.Delete Shift:=xlUp

    ActiveSheet.Range("$A$1:$I$161").AutoFilter Field:=1

    End Sub

    而python的代码,

    import pandas as pd

    data = pd.read_excel(excel源文件路径)

    res = data[data['品牌']=='品牌1']

    writer = pd.ExcelWriter(excel保存路径, engine='xlsxwriter')

    res.to_excel(writer, sheet_name='结果', index=False)

    writer.save()

    相对来说,python的代码逻辑比VBA的要简单易理解,但VBA的录制宏,是一个相对来说比较便捷的功能,因为可以直接把你的操作记录下来,还不用敲代码。

    只是目前在我的经验里,有两个问题,

    1、如果中间操作出错需要重新录制;

    2、如果操作的数据量过大的时候,宏执行也会慢;

    综上,从不管从功能使用还是代码编写实现逻辑来说,个人觉得python更容易学,应用层也相对更加广。

    展开全文
  • Excel VBA和Python语言在森林生态气象水文工作中的应用与比较.pdf
  • 前言:我有一项月度工作,需要对代理商进行指标分析,有十几个指标,每个指标有一定的比例,最后得出每个代理商的分数排名。成品的样子是这样的: 但是到这里仅仅是excel,领导觉得还不够,需要转化为word的...

    前言:我有一项月度工作,需要对代理商进行指标分析,有十几个指标,每个指标有一定的比例,最后得出每个代理商的分数和排名。成品的样子是这样的:
    在这里插入图片描述
    但是到这里仅仅是excel,领导觉得还不够,需要转化为word的点评,成品是这样的:

    在这里插入图片描述

    如果光靠手动写的话,不仅需要很长时间,而且还很容易出错,所以我第一步做了一个辅助sheet,使得结果能够根据标准得出具体的文字:
    在这里插入图片描述
    其中C1的数值是做了有效性,可以根据筛选,使得A4:E16的结果变化,在F20做了公式,使得结果直接出来,G20则是选择性黏贴的结果。
    但是到这里还不够,因为代理商比较多,我还需要一个个手动筛选并复制黏贴,而且每个月的代理商排名不同导致最后复制黏贴的顺序也不同,所以使用VBA先把所有代理商的结果批量复制黏贴出来,同时排序,成品如下:
    在这里插入图片描述
    VBA代码如下:

    Sub 文字刷新()
        Dim i As Integer
        For i = 2 To 13
            
            Sheets("文字结果").Range("A" & i).Copy Sheets("模板").Range("C1")
            Sheets("模板").Select
            Range("F20").Select
            Selection.Copy
            Sheets("文字结果").Select
            Range("E" & i).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Next
        '下面的代码就是把顺序排列了一下
        Range("D3").Select
        ActiveWorkbook.Worksheets("文字结果").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("文字结果").Sort.SortFields.Add2 Key:=Range("D3"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("文字结果").Sort
            .SetRange Range("A2:E13")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        
        End With
    End Sub
    
    
    

    接下来再用Python把单元格的结果根据顺序导出到txt(其实可以直接word,后续再优化),代码如下:

    import os
    from win32com.client import Dispatch
    
    def chinese_rank(jjc_range):
        if jjc_range == 1:
            return "第一名:"
        elif jjc_range == 2:
            return "第二名:"
        elif jjc_range == 3:
            return "第三名:"
        elif jjc_range == 4:
            return "第四名:"
        elif jjc_range == 5:
            return "第五名:"
        elif jjc_range == 6:
            return "第六名:"
        else:
            print("好像有点问题,确认一下代码或者代理商数量!")
    
    this_path = os.path.abspath('.')
    excel_path = this_path + '\\2018年浦东实体门店和代理商月度评估.xlsm'
    
    xl = Dispatch("Excel.Application")
    xl.Visible = False #True是显示, False是隐藏
    xl.DisplayAlerts = 0
    xlBook = xl.Workbooks.Open(excel_path,False)
    xs = xlBook.Sheets('文字结果')
    
    with open('代理商点评.txt', 'a', encoding='gbk') as file:
        for i in range(2,14):
            name = xs.Cells(i, 1).Value
            score = str(float('%.1f' % xs.Cells(i, 2).Value))
            jjc_range = xs.Cells(i, 3).Value
            total_range = xs.Cells(i, 4).Value
            dianping = xs.Cells(i, 5).Value
            zyjjc_rank = chinese_rank(jjc_range)
            file.write(zyjjc_rank + name + '(' + score + '分)')
            file.write('\n')
            file.write(dianping)
            file.write('\n')
    
    xl.quit()
    

    最后成品如下:
    在这里插入图片描述

    展开全文
  • Excel VBA和Python语言在森林生态气象水文工作中的应用与比较
  • 处理excel,选择vba还是python

    万次阅读 多人点赞 2020-05-06 16:44:15
    但是由于vba的历史遗留问题一些企业的限制安装软件,那还是老老实实的躺好,用vba解决问题。 我们先看一下两者的学习大纲。 vbaPython: 有很多东西是相似的,语言基础全家桶【变量、数据类型、运算符、选择...
  • ------补充2020/07/15-21:19:(1)我认同python在作为胶水语言库很多这两点上的优势,不过正如文中所述,99.99%用excel的人是真的用不到那些库,也没时间学习(需要有编程基础/思维,英语不错,愿意抽出时间钻研...
  • 原标题:Python或将取代VBA,成为Excel官方脚本语言???微软正考虑添加 Python 为官方的 Excel 脚本语言‍据外媒报道,微软正考虑添加 Python 为官方的一种 Excel 脚本语言,如果获得批准,Excel 用户将能够像目前...
  • 介绍 xlwsings,这个库允许你在 VBA 中调用 Python 代码,从而大大简化很多事务性工作的处理。并且使用简单方便...
  • 主要介绍了VBA处理数据与Python Pandas处理数据案例比较,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • PythonVBA的比较2 需求: input文件中有两列数据,第一列为Name,第二列为Score,Name列里有重复的值,要求按照name的唯一值统计 score,输出到output文件按中。 1–用 Pandas解决: from pandas import DataFrame ...
  • Excel和VBA对比Python和pandas数据方法总结 本内容以网上获取某电商公司的一段销售数据进行分析 Excel和VBA篇 首先用Excel打开表格,格式如下, 总共一万多行,记录的是月销售记录,所有销售记录个表格格式都是一致...
  • trying to call a python script on Vba and I am a newb. I tried converting the main script to an exe using py2exe and then calling it from VBA (shell) but the main script calls other scripts therefore ...
  • 目标:在windows 10系统上,通过vba程序调用python源代码 1、准备好python源代码,比如test.py 2、创建vba程序,使用shell方法执行dos命令: cmd /k,可以保持dos窗口不关闭 用&符号,连接多个dos命令,连接...
  • 今天我们就使用Python和VBA一起来看看如何获取全部文件名!VBA 获取全部文件名(含子文件夹)子文件夹可能还有子文件夹,所以这是一个“子子孙孙无穷尽也”的问题这种情况,一般我们能想到好的处理方式就是-递归,但是...
  • vba=Python(100万以上当然是Python+mysql了) PQ的使用核心在于通过外部链接数据源,用“全部刷新”,进而获得最新的数据 而刷新完成后,可以结合VBA(也就是宏),把后续的工作一步完成 但是全部刷新的动作属于...
  • 金仕达风控系统没有声音提示功能,盯起来...使用了python的pyautogui库来模拟鼠标下载数据的操作,然后用vba来进行判断(之所以没有全部使用python是因为金仕达导出来的数据python不能直接读取),代码如下: Priva...
  • xlwings:操作Excel,通过宏调用Pyhton(VBAPython

    万次阅读 多人点赞 2018-05-13 17:15:55
    这里补一段xlwings的安装方式(更简单,如果有效的话,但不确定是否有效,慎重!) 1. 先卸载掉原来可能存在的xlwings pip uninstall xlwings conda uninstall xlwings ...python setup.py ins...
  • 毕竟,个人的学习能力有限,想要同时掌握VBA和python还是有一定难度的。 就算是excel,很多人都只敢说会使用,不敢说精通。 虽然VBA作为程序的自动化脚本而存在,是为了提高程序的自动化程度。可是,操作起来,那...
  • vba里使用python自定义函数

    千次阅读 2018-12-21 22:49:51
    今晚在excelhome论坛边想边写了2小时,在自己博客里也做一份记录吧。 今天讲一下怎么在vba里面...沟通python和excel主要是通过一个名为xlwings的加载项作为连接的纽带,从而实现互通。下面主要写以下几点:1.如何搭...
  • 钉钉打卡工时统计,表1为原始打卡记录,怎么用Python或者VBA生成表2工时格式。 早上上班时间为7:00,下班时间为11:30,下午上班时间为13:30下班时间为17:30,如果有加班加班时间为18:00-20:30。 中午休息1.5...
  • 2、所有与Office相关的开发都是基于其COM接口,VBA也不例外。...VBA与VB共享一套内置函数虚拟机,无需安装额外的开发环境,生人可从录制宏开始,从现象到本质,一路学起来。拖一拖,点一点,比其..
  •  首先我们发现的是在变量上面的不同,vba在使用变量的时候以字母开头,不能用保留字,不超过255字符,同一范畴是唯一,而python的变量可以用字母下划线开头,字母大小写敏感,动态类型,赋值方面,1,普通赋值 =...
  • I'm trying to run a python script from my VBA module. I've tried pretty much every example I've seen on the internet and so for have had no luck.In the VBA module I also run a .bat file, and it works ...
  • 利用python执行vba宏代码

    万次阅读 热门讨论 2018-10-07 20:14:01
    python作为 VBA 的外部开关
  • 文章目录pythonVBA参数之间调用字符传参数组传参总结 pythonVBA参数之间调用 python如何调用VBA文件请参见:【001】python调用VBA方式_#py 除数组外,其他参数均可实现字符之间互传,如下 字符传参 先在VBA里面...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,507
精华内容 2,602
关键字:

vba和python

python 订阅