[英]Move Worksheet based off a cell value to another workbook
我希望有人可以帮助解决这个问题,但我正忙着做任何事情。 我有一个包含很多工作表的相当大的工作簿,我有一个运行并使用“触发器”填充列 B 的报告 A 列:是工作簿中所有工作表的名称。 B 列是需要移动特定工作表的指示符,例如“是”。 我需要将指定的工作簿移动到另一个工作簿中。
我只能找到移动单元格的适用示例,但它不起作用。 任何帮助或方向将不胜感激!
Dim WBK As Workbook
Dim WBK2 As Workbook
Set WBK= ThisWorkbook
Set WBK= Workbooks.Open(Filename:"ReportList.xlsx")
For i = 1 To Sheets("MoveSheet").End(xlDown).Row '(ERRORHERE)
If Sheets("MoveSheet").Range("B" & i) = "Move" Then
Sheets(Sheets("MoveSHeet").Range("A" & i)).Move After:=wkbk2.Sheets(1)
Else
End if
Next i
End Sub
也许 for each 循环会很好。
将 wkbk1 调暗为工作簿 - 主工作簿 将 wkbk2 调暗为工作簿 - 您的其他工作簿
Set wkbk1 = ActiveWorkbook Set wkbk2 = "input name here"
暗淡为工作表
对于 wkbk1.Sheets 中的每个 ws
'使用 if 代码检查是否满足某些条件' ws.Move wkbk2.Sheets(Sheets.Count)
下一个
我将有一个循环遍历 A 列,并通过检查旁边的 B 列来检查工作表是否需要移动。 如果 B 列包含触发器,将使用 if 条件进行检查,则将工作表移动到另一个工作簿。
For i = 1 To Sheets("Sheet1").End(xlDown).Row
如果 Sheets("sheet1").Range("B" & i) = "Yes" 那么
Sheets(Sheets("sheet1").Range("A" & i)).Move After:=Workbooks("Otherworkbook.xls").Sheets(1)
别的
万一
接下来我
像这样的东西,但可能需要用完整的文件名和目录声明第二个工作簿。
您发布的代码并不太远 - 一些错别字等
尝试这个:
Sub Tester()
Dim wb As Workbook, wsList As Worksheet, c As Range
Dim wbDest As Workbook
Set wb = ThisWorkbook
Set wsList = wb.Worksheets("MoveSheet") 'your sheet with tab names and "Move" flag
Set wbDest = Workbooks.Open(Filename:="C:\Example\Path\ReportList.xlsx") 'provide the full path
For Each c In wsList.Range("A1:A" & wsList.Cells(Rows.Count, "A").End(xlUp).Row).Cells
If c.Offset(0, 1).Value = "Move" Then 'has a flag to be moved?
wb.Worksheets(c.Value).Move after:=wbDest.Sheets(wbDest.Sheets.Count) 'move after last sheet
End If
Next c
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.