我试图应用一个宏,将一个特定的工作表(调用该工作表的 Headers “x”)从一个workBOOK(“x1”)复制并粘贴到一个主工作簿(调用该工作簿“xmaster”)之后它从工作簿x1复制并粘贴工作表,它还应该将工作表“x”的 Headers 重命名为单元格B3 . 这应该在它移动到下一个工作簿之前完成 .
它需要为workBOOK x1,比如x100执行此操作 . 我不能通过名称来引用工作簿,因为它们每个都被命名为一个文本字符串,它没有真正的可排序方法 .
我知道这个代码有效,将“x”从“x1”复制到“xmaster”,同时重命名工作表,并断开链接,如下所示:
Sub CombineCapExFiles()
Sheets("Capital-Projects over 3K").Move After:=Workbooks("CapEx Master File.xlsm").Sheets _
(3)
ActiveSheet.Name = Range("B3").Value
Application.DisplayAlerts = False
For Each wb In Application.Workbooks
Select Case wb.Name
Case ThisWorkbook.Name, "CapEx Master File.xlsm"
' do nothing
Case Else
wb.Close
End Select
Next wb
Application.DisplayAlerts = True
End Sub
“激活上一个”窗口不起作用,也不确定如何修复它的这一部分 .
但是,我不确定如何构建它来遍历目录中的所有workBOOK .
我应该用这个吗?
MyPath = "C:\directory here"
strFilename = Dir(MyPath & "\*.xlsx", vbNormal) 'change to xlsm if needed ?
If Len(strFilename) = 0 Then Exit Sub ' exit if no files in folder
Do Until strFilename = ""
'Your code here
strFilename = Dir()
Loop
另一个限制是它不需要在xmaster上运行宏(它会有一个错误,因为它没有表单“x”,它将从以前的工作簿重命名 . )
谢谢!马修
2 回答
像这样? (未测试)
这个位将有助于避免在xmaster上运行宏 .
不过我对另一方面无能为力 . 我的代码中没有看到任何Activate Previous窗口部分 .