Python中使用VBA处理数据

powerbi 中用到离线表excel的数据清洗,发现使用VBA比python处理Excel方便,快速。

VBA里面定义一个函数名macro,直接在python中调用执行对应的source 文件。
def run_macro(macro,source1="", source2=""):
    try:
        xlApp = win32com.client.DispatchEx('Excel.Application')
        xlApp.Visible = True
        xlsPath = os.path.expanduser(r'D:\Macro_Htm.xlsm')
        wb = xlApp.Workbooks.Open(Filename=xlsPath)
        xlApp.Run(r'Macro_Htm.xlsm!'+macro, source1, source2)
        xlApp.Quit()
        print("Macro ran successfully!")
    except Exception as e:
        print(e)
        xlApp.Quit()

 

 

如果excel不方便写关闭保存,在python里加上wb.save()
try:
    xlApp = win32com.client.DispatchEx('Excel.Application')
    xlApp.Visible = True
    xlsPath = os.path.expanduser(r'11C\11.xlsm')
    wb = xlApp.Workbooks.Open(Filename=xlsPath)
    xlApp.Run(r'111.xlsm!'+macro, source1)
    wb.Save()
    xlApp.Quit()
    print("Macro ran successfully!")
except Exception as e:
    print(e)
    xlApp.Quit()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以在某些情况下取代VBA,但并不是所有情况。VBA是一种专门为Microsoft Office应用程序开发的编程语言,而Python是一种通用编程语言,可以用于各种目的。如果你需要使用Microsoft Office的特定功能,例如自动化Excel电子表格或Word文档,那么VBA可能更适合你。但是,如果你需要进行更复杂的数据分析、机器学习或Web开发等任务,那么Python可能更适合。总之,取决于你的具体需求和项目要求。 ### 回答2: Python可以部分取代VBA,但不完全取代。Python作为一种通用的编程语言,可以实现VBA所能做的许多功能,并且拥有更多的功能和灵活性。以下是几点Python相对于VBA的优势: 1. 语法简洁且易学习:相比VBA的冗长代码Python具有简洁的语法,易于阅读和理解,新手上手较快。 2. 强大的第三方库支持:Python拥有众多的第三方库和模块,可以通过这些库来实现各种功能,例如图形处理、网络爬虫、数据分析、机器学习等。 3. 跨平台支持:Python可以在多个操作系统上运行,包括Windows、MacOS和Linux等,而VBA只能在Windows上运行。 4. 更好的数据处理功能:Python拥有丰富的数据处理和分析库,如NumPy、Pandas和Matplotlib,能够更高效地进行数据处理和可视化。 5. 更好的性能和扩展性:Python具有更好的性能和扩展性,可以处理大量的数据和复杂的任务,而VBA处理数据量时相对较慢。 然而,对于Excel应用和宏编程方面,VBA仍然有其优势。如果需要对Excel进行复杂的操作、处理大量的数据和进行高级的宏编程,VBA仍然是更合适的选择。因此,根据具体需求,选择合适的工具是更为明智的做法。 ### 回答3: Python可以取代VBA,因为Python具有更广泛的应用领域和更强大的功能。 首先,Python是一种通用的编程语言,可以用于开发各种类型的应用程序,包括Web应用、桌面应用、移动应用等。而VBA主要用于编写宏和自定义函数,局限于Office软件的应用开发。因此,Python可以更好地满足不同领域的开发需求。 其次,Python拥有更丰富的生态系统和更多的第三方库。Python的开源社区非常活跃,并且有大量的开源库可供开发人员使用。这些库可以帮助开发人员更快地实现各种功能,如数据处理、机器学习、图表生成等。相比之下,VBA的库和资源相对较少。 此外,Python还具有更好的可扩展性和代码的可维护性。Python的语法简洁易读,并且支持面向对象编程,使得代码更易于维护和重用。而VBA的语法相对较旧,代码结构相对混乱,可扩展性相对较差。 最后,Python数据处理和科学计算方面表现出色。Python有多个强大的库,如NumPy、Pandas和Matplotlib等,可以方便地对数据进行处理和分析。而VBA在这方面的功能相对较弱。 综上所述,虽然VBA在Office软件的宏编程方面有一定的优势,但Python在更广泛的应用场景更加强大和灵活,因此可以完全或部分取代VBA

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值