如何使用VBA从工作表创建多个Excel工作簿

如何使用VBA从工作表创建多个Excel工作簿,excel,vba,Excel,Vba,我有一个巨大的Excel报告,其中有许多不同的服务器名称,现在我认为可以用VBA编写一个宏来创建一个新的Excel文件,该文件以服务器名称命名 例如,我的表有一个名为“servername”的列,n行包含名称“Server1”,m行包含名称“Server2” 现在我希望宏创建两个文件,Server1.xlsx和Server2.xlsx,这两个文件都包含包含servername的每一行 这可能吗?如果是,请您帮助我,我以前从未使用过VBA,不知道如何开始。您可以从创建两本工作簿开始。你现在有三本书

我有一个巨大的Excel报告,其中有许多不同的服务器名称,现在我认为可以用VBA编写一个宏来创建一个新的Excel文件,该文件以服务器名称命名

例如,我的表有一个名为“servername”的列,n行包含名称“Server1”,m行包含名称“Server2”

现在我希望宏创建两个文件,Server1.xlsx和Server2.xlsx,这两个文件都包含包含servername的每一行


这可能吗?如果是,请您帮助我,我以前从未使用过VBA,不知道如何开始。

您可以从创建两本工作簿开始。你现在有三本书。原始(保存程序代码)称为ThisWorkbook,其他两个由对象变量引用。然后开始在现有页面中的每一行中循环,并使用IF语句将每一行带到一个或另一个目标。当你到达一个空白行时,你停下来。下面是一个示例(注意,您必须自己扩展)


这完全有可能。但是,如果您以前没有编写过VBA,则需要先从那里开始

我推荐比尔·杰伦的。他们的信息非常丰富,他是所有Excel/VBA方面的最高权威。如果你不想付钱,总会有的


在您掌握了VBA的入门知识之后,我建议您将所有元数据存储在Excel
表中
,循环该表中的所有行,并使用每行中的元数据创建工作簿

是的,这是可能的,这是可能的。但请注意,因为这不是免费的代码编写服务,所以有必要显示您迄今为止所做的尝试以及遇到的问题或错误(通过显示代码),或者至少显示您所做的研究和努力。否则它只是要求我们为你做所有的工作。阅读可能会帮助你改进你的问题。请再次阅读我的问题,我没有要求你为我编写代码,我只是问你是否可以像我所问的那样做,如果你知道我可以从哪里开始……然后请再次阅读,以理解这个问题太广泛,无法给出一个好的答案。首先阅读一些有关VBA的介绍教程,以熟悉基本语法。然后继续研究如何过滤数据(提示
Autofilter
)以及如何将过滤后的数据复制到新工作表。然后自己尝试一下,然后带着你的代码和你已经尝试过的东西回来一个好主意是首先使用宏记录器并应用它。
 Sub Example()
 Dim wb as workbook 'declare an objvet variable
 Set wb = workbooks.add()  'point it to a new instance of the workbook class
 wb.saveas "File1.xlsx" 'save it as file1
 dim source as Range  'pointer to original file
 dim target1 as range  'pointer to destination
 set Source = thisworkbook.worksheets(1),range("a1")  'point to a1 in source file
 set target = wn.worksheets(1).range("a1")
 Do  'start a loop
 if source.text = "fred" then  'id cell holds this text then....
     source.entirerow.copy target  'copy source to target
     set target = target.offset(1,0)  'move target pointer down one row, no columns
 end if
set source = source.offset(1,0) 'move source pointer
loop until source = "" 'stop at first blank cell
wb.save