【发布时间】:2019-07-07 21:47:43
【问题描述】:
我有一个包含名称列表(names.xlsm)的 excel 文件,我想用不同的工作表创建另一个新的 excel 文件(separate.xlsx)。单独的.xlsx 中每个工作表的名称是 names.xlsx 中的一个名称,每个工作表的第一个单元格是相同的名称值。
'''VBA
Sub copy_name()
Dim MyCell As Range, MyRange As Range, ws As Worksheet
Dim mybook As Workbook
Set mybook = Workbooks("names.xlsm")
Set MyRange = mybook.Sheets("names").Range("A2:A6") 'eg. five names'
Dim target As Workbook
Set target = Workbooks("separate.xlsx")
i = 1
For Each MyCell In MyRange
Set ws = target.Worksheets.Add(After:=Worksheets(Worksheets.Count)) ' create new worksheet in target file
ws.Name = MyCell.Value ' renames the new worksheet
target.Sheets(MyCell.Value).Cells(1, 1) = MyCell 'copy the value of Mycell to target sheets
i = i + 1
Next
Set mybook = Nothing
Set target = Nothing
End Sub
''' 这是我的代码。它一直显示错误,我不知道如何调试。
【问题讨论】:
-
它在哪里给你一个错误?调试可以按F8,程序会逐行进行
-
@Damian 错误显示在一行:Set ws = target.Worksheets.Add(After:=Worksheets(Worksheets.Count))
-
更改此:
target.Worksheets.Add(After:=Worksheets(Worksheets.Count))为:target.Sheets.Add(After:=target.Sheets(target.Sheets.Count))