VBA:使用VLookUps从值列表创build新的工作簿

在向社区伸出援手之前,我一直在search和学习VBA。

我有一个带有一个值列表的工作簿。 在另一个列表中是其中一个单元格的下拉列表。 该单元与几十个vlookups和公式相关联,以快速validation一些公司数据。

我一直在微调从另一篇文章的macros,并得到它从列表中复制值,并保存在我想要的地方,并命名为我想要的。 我还没有得到它重复的过程,虽然…任何意见? 这是迄今为止我一直在搞的代码。

Sub create() Dim wb As Workbook, sh1 As Worksheet, lr As Long, rng As Range Set sh1 = Sheets("GIW") Set sh2 = Sheets("3A") lr = sh1.Cells(Rows.Count, "A").End(xlUp).Row Set rng = sh1.Range("A2:A" & lr) For Each c In rng Set wb = ActiveWorkbook wb.Sheets.Add wb.Sheets(1).Range("D10") = c.Value wb.SaveAs c.Value & ".xlsx" = "C:\Users\ianc\Desktop\Exhibit 2 Data Validation.xlsx" wb.Close False Next End Sub 

 Sub create() Const FPATH As String = "C:\_Stuff\" Dim wb As Workbook, sh1 As Worksheet, lr As Long, rng As Range Dim c As Range Set sh1 = ThisWorkbook.Sheets("GIW") lr = sh1.Cells(Rows.Count, "A").End(xlUp).Row Set rng = sh1.Range("A2:A" & lr) Set wb = ActiveWorkbook wb.Sheets.Add before:=wb.Sheets(1) For Each c In rng wb.Sheets(1).Range("D10") = c.Value wb.SaveCopyAs FPATH & c.Value & ".xlsx" Next wb.Close False End Sub 

我可以看到唯一的问题是使用ActiveWorkbook 。 尝试将wb设置为正在使用的工作簿的名称。

这是从录制的macros开始的第一个技巧之一,您必须摆脱logging器放入的所有ActiveSheetActiveWorkbook引用,使用特定的名称。 VBAperformance得更好。