我已经在谷歌上搜索过了,但没有结果。
我需要一个代码,它将选择多个工作表,并移动到一个新书的基础上,每个工作表单元格(1,8)的内容。例如,将单元格(1,8)中包含"fin Ops“的所有工作表移动到book1,然后将单元格(1,8)中包含"Re”的所有工作表移动到book2。
我试着从下面的代码开始,但作为一个初学者有点困难:
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If ws.Cells(1, 8).Value = "Fin Ops" Then
ActiveSheet.Select
End If
Next ws非常感谢您的帮助!
发布于 2014-09-30 03:41:10
您实际上是在正确的轨道上!您的想法是正确的,使用for-each循环遍历所有工作表。
在此之前,您要做的是创建几个Workbook对象,这些对象将是您希望将这些工作表移动到的工作簿。您可以这样做:
Dim oBookOne As Workbook
Set oBookOne = Application.Workbooks("<workbook name here>")对所有需要的书重复这一点。创建所有工作簿对象后,可以在For-each循环中执行以下操作:
For Each ws In ActiveWorkbook.Worksheets
If ws.Cells(1, 8).Value = "Fin Ops" Then
ws.Move After:= oBookOne.Sheets(oBookOne.Sheets.Count)
End If
Next ws对每个你需要过滤的条件重复这一步,它应该是有效的!
如果你需要进一步的帮助,谷歌是你最好的朋友。Here是关于工作簿对象如何工作的文档(heh),here是关于Move函数的文档。
发布于 2014-09-30 03:54:31
代码:
Sub SelectMove()
Dim ws As String
Dim arr() As String
Dim w As Worksheet
Dim c As Long
c = 0
For Each w In ActiveWorkbook.Worksheets
If w.Cells(1, 8) = "Fin Ops" Then
ws = ws & "," & w.Name
End If
Next
ws = Right(ws, Len(ws) - 1)
arr() = Split(ws, ",")
Sheets(arr).Move
End Subhttps://stackoverflow.com/questions/26107016
复制相似问题