0

どうすればいいですか!?私は60枚のExcelワークブックを持っており、60枚すべてが同じ列ヘッダーと列数を持っています。

各シートは国の名前であり、行の列Aには名前、列Bにはステータス、コードDがあります。

値B=“ XYV”である国別のすべての名前をリストし、対応する値をDで表示する、60枚すべてのシートを使用してレポートを作成する必要があります。

それが理にかなっていることを願っています!

シート全体でピボットテーブルを使用しようとしていますが、必要な列のみを選択すると無効な参照が表示されるか(これには永遠に時間がかかります!)、シート全体を選択するとメモリが不足します。

これをVBAマクロで実行できますか?

申し訳ありませんが、この方法でExcelを使用するのは初めてなので、助けていただければ幸いです…</ p>

4

1 に答える 1

1

VBAを使用すると、これは機能します(ただし、整理する必要があります。アイデアを提供するためにVBAを含めました)。

Sub FindItems()

Const Thing As String = "XYV"

'remember which workbook you are on
Dim wb As Workbook
Set wb = ActiveWorkbook

'create new book for answer
Dim AnswerBook As Workbook
Set AnswerBook = Workbooks.Add

'loop over sheets in original workbook
Dim ws As Worksheet
Dim c As Range
Dim BCells As Range

For Each ws In wb.Worksheets

    'check each cell in column B
    wb.Activate
    ws.Select

    Range("B1").Select
    Set BCells = Range(ActiveCell, ActiveCell.End(xlDown))

    For Each c In BCells

        If LCase(c.Value) = LCase(Thing) Then

            'add to list
            AnswerBook.Activate
            ActiveCell.Value = ws.Name
            ActiveCell.Offset(0, 1).Value = c.Value
            ActiveCell.Offset(0, 2).Value = c.Offset(0, 2).Value

            ActiveCell.Offset(1, 0).Select

        End If
    Next c

Next ws

サブ終了

于 2013-03-07T14:16:33.043 に答える