[英]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.