在它从工作簿 x1 复制并粘贴工作表它还应该将工作表的标题“x”重命名为单元格 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
“激活上一个”窗口不起作用,也不知道如何修复它的那部分。
但是,我不确定如何构建它以遍历目录中的所有工作簿。
我应该使用这个:?
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”,它将从以前的工作簿中重命名。)
谢谢!马修