0

Excel vba には比較的慣れていませんが、ワークブック内の複数のワークシートで実行できるマクロの作成に関するアドバイスを探しています。

私が探しているアドバイスは、それらの列で特定の値を見つけることができる 3 つの列を取ることです。行には、それらの行をすべての列見出しとともに同じワークブックの新しいワークシートに保存するために満たされるこれらの 3 つの列のそれぞれに値があります。したがって、ワークブックに 10 個のワークシートがあり、マクロを実行すると、最終的に 20 個のワークシートが必要になります。

誰でも私を助けることができますか?

4

1 に答える 1

0

あなたは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
于 2012-05-10T21:42:14.300 に答える