以下代码应该将工作簿中名为PCReport的所有工作表(除了最后2个)复制到名为Insp & date的新工作簿。将多个工作表复制到不同的工作簿
它翻倒就行
Workbooks(xWkb).Sheets(sheet.Name).Copy after:=Workbooks(tgtWkb).Sheets(x)
该错误是运行时错误424,所需的对象。
X = 1,总= 10,xWkb = “PCReport.xlsm”,tgtWkb = “Insp25112015.xls”
Dim total As Integer
Dim NewWkb As Workbook
Dim xWs As Worksheet
Dim xWkb As String
Dim tgtWkb As String
Dim i As Integer
xWkb = "PCReport.xlsm"
Set NewWkb = Workbooks.Add
'ActiveWorkbook.SaveAs "C:\Users\Carol\Desktop\Insp" & Format(Date, "ddmmyyyy") & ".xls"
ActiveWorkbook.SaveAs "C:\Users\Carol.Hedges\Insp" & Format(Date, "ddmmyyyy") & ".xls"
tgtWkb = ActiveWorkbook.Name
total = Workbooks(xWkb).Worksheets.Count
i = 1
For x = 1 To total - 2
Workbooks(xWkb).Sheets(sheet.Name).Copy after:=Workbooks(tgtWkb).Sheets(x)
i = i + 1
Next
其中'x'变量来自我认为你使用变量'我'? – 2014-11-25 05:52:00
'sheet.Name'的sheet应该是什么?你不要声明它。 – 2014-11-25 06:02:26
将行更改为'Workbooks(xWkb).Sheets(x).Copy after:= Workbooks(tgtWkb).Sheets(x)'。注意:使用索引可能会很棘手,也许会更好地循环所有工作表并添加一个条件以避免按名称排列的最后两个工作表。注2:我用什么变量?,使用Option Explicit,一些变量没有声明。 – 2014-11-26 21:02:05