使用VBA自动创建Excel文档

使用VBA自动创建Excel文档,vba,excel,automation,Vba,Excel,Automation,我们公司的总经理希望我制作一份自动月度文档,保存到系统的某个位置,这样他就不必手动输入所有数据。我已经进行了设置,以便文档能够以正确的格式保存到正确的位置,但我对VBA的了解不多 从一个问题一个问题的角度来解决这个问题我想我的问题是,是否可以创建一个非常长的宏,它将在几个工作簿中完成许多不同的任务。例如,我们有一个来自ERP(Baan)的报告,它将所有数据推到一个单元格中。是否可以创建一个宏,将文本格式化为列,然后根据行引用从单元格复制数据,然后获取所述数据并将其粘贴到其他工作簿中?那么,它是否

我们公司的总经理希望我制作一份自动月度文档,保存到系统的某个位置,这样他就不必手动输入所有数据。我已经进行了设置,以便文档能够以正确的格式保存到正确的位置,但我对VBA的了解不多


从一个问题一个问题的角度来解决这个问题我想我的问题是,是否可以创建一个非常长的宏,它将在几个工作簿中完成许多不同的任务。例如,我们有一个来自ERP(Baan)的报告,它将所有数据推到一个单元格中。是否可以创建一个宏,将文本格式化为列,然后根据行引用从单元格复制数据,然后获取所述数据并将其粘贴到其他工作簿中?那么,它是否能够从只运行一个宏的过程中保存工作簿?如果是,宏执行后,所有这些都需要多长时间?

是的,我认为这应该是可以做到的,请记住文件名和位置保持不变(否则,您必须每月编辑一次)。创建不同的子/函数,并在一个主宏中调用它们


最简单的方法可能是一步一步地做。记录宏并查看它是否已经帮助您解决问题,如果没有,请使用google&stackoverflow获取帮助!:)

这是完全可能的-但我认为VBA不太适合这项任务。这个编辑器充其量也很糟糕,而且很容易生成高度特定的“意大利面代码”。 文件操作是可能的,但不好。错误处理是一种80年代风格,有很多转到。
因此,如果您想构建可维护的应用程序,请使用Interop或epplus(.net package,用于读取/写入excel文档)或.net Add in for office构建外部应用程序。

此外,您不能将所有数据拉入一个单元格,这是excel对单个单元格中字符数的限制,vba代码通常是slowI。我很想用VB或C#在.net中构建应用程序,但事实证明,公司不会为我购买visual studio来实现这一点,我也在运行一个很慢的系统,该系统很旧,甚至没有两台显示器的容量。所以为了得到整体的想法,你说这是可能的,但会非常耗时和低效?有趣的是,有了Interop,你是说.net的COM Interop,我猜?你也有用于Office的.net加载项的例子吗?在我的公司,我有使用VBA和vb.net的构建工具。与您花费无休止的时间试图用VBA构建有价值的东西相比,VisualStudio的费用很小。你的回答总结了我的观点-也许你可以想出一些快速工作的东西,但添加功能是一件痛苦的事。你没有错,哈哈,似乎他们想让我写一个惊人的程序,我可以使用的工具是一片混凝土、一把锤子和一把凿子。因此,我们认为它是可以做到的,但无法维护,而且对于它本身来说过于复杂。另外,如果我在家工作时没有那么累,需要周末来恢复,那么在家工作也可以。文件名很好,因为它设置为按如下方式保存:ctiveWorkbook.SaveAs Filename:=“C:\Documents and Settings\username\Desktop\AutoFinance\MonthlyDashboard\”&Format(Date,“yyyyymm”)&“DB”&.xlsx”,FileFormat:=51这样它可以保存月份和年份加上“DB”,所以每月一次应该很好,这很完美,但我指的是用于获取数据的文件;)这些文件将遵循相同的格式,但它们将保存在MMYYTB(试算平衡)下,因此每个月我都必须更新并运行代码添加另一点:vba中的错误测试非常糟糕-您不能保证它在所有情况下都能工作。我真的很喜欢VBA的小工具-但对于很多问题,它就像使用锤子时,你必须通过针线程garn