我对 excel vba 比较陌生,但我正在寻找一些关于创建一个可以在工作簿中运行多个工作表的宏的建议。
我正在寻找的建议是取 3 列,我可以在这些列中找到某些值。其中一行在这 3 列中的每一列中都有一个值,可以将这些行与所有列标题一起保存到同一工作簿中的新工作表中。所以,如果我的工作簿中有 10 个工作表并运行宏,我最终需要 20 个工作表。
谁能帮我?
由于您是 VBA 新手,我给您一些代码。上帝知道我刚开始的时候得到了很多帮助。看一下这个。我不确定您将如何传递要查找的值,但这应该会给您一个良好的开端。
Sub find3_makesheet()
Dim strValue As String
Dim wks As Worksheet
Dim rng1 As Range, rng2 As Range, rng3 As Range
strValue = "myValue"
For Each wks In Worksheets
With wks
If Not .Columns(1).Find(strValue, lookat:=xlWhole) Is Nothing Then Set rng1 = .Columns(1).Find(strValue, lookat:=xlWhole)
If Not .Columns(2).Find(strValue, lookat:=xlWhole) Is Nothing Then Set rng2 = .Columns(2).Find(strValue, lookat:=xlWhole)
If Not .Columns(2).Find(strValue, lookat:=xlWhole) Is Nothing Then Set rng3 = .Columns(2).Find(strValue, lookat:=xlWhole)
If Not rng1 Is Nothing And Not rng2 Is Nothing And Not rng3 Is Nothing Then
ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
Set wksCopyTo = ActiveSheet
.Rows(1).EntireRow.Copy wksCopyTo.Rows(1)
rng1.EntireRow.Copy wksCopyTo.Rows(2)
rng2.EntireRow.Copy wksCopyTo.Rows(3)
rng3.EntireRow.Copy wksCopyTo.Rows(4)
End If
End With
Set rng1 = Nothing
Set rng2 = Nothing
Set rng3 = Nothing
Next
End Sub