簡體   English   中英

將基於單元格值的工作表移動到另一個工作簿

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM