0

1 つのワークシートに一覧表示された製品のリストがあり、それぞれ必要な数を選択できますが、すべての製品に値があるわけではありません。別のワークシートで、金額が選択されている製品のみをプルしたいと考えています。ご意見をお聞かせください。

最初のワークシート:

A        B

a        3

c       45

d   

e   

f       10

必要な 2 番目のワークシート:

A       B

b       3

c      45

f      10
4

2 に答える 2

2

単純な VBA サブルーチンを使用して、必要なものを取得できます。

Sub notNull()
    Dim count As Integer
    count = Application.WorksheetFunction.CountA(Range("A:A"))
    Dim i As Integer
    i = 1
    Dim rowCount As Integer
    rowCount = 1
    Do While i <= count
        If (Range("B" & i) <> "") Then
            Worksheets("Sheet2").Range("A" & rowCount) = Range("A" & i)
            Worksheets("Sheet2").Range("B" & rowCount) = Range("B" & i)
            rowCount = rowCount + 1
        End If
        i = i + 1
    Loop
End Sub

列 A のデータを含むすべての行を調べ、列 B の関連する値が "" と等しいかどうかを確認し、そうでない場合は、両方の値を別のシートにコピーします。お役に立てれば!

于 2012-07-27T13:43:51.710 に答える
1

あなた/あなたのエンドユーザーがマクロを許可されている場合は、VBA サブルーチンを使用してこれを実現できます。以下の例では、ワークシートの名前を変更しておらず、それぞれ「Sheet1」と「Sheet2」と呼ばれていると仮定しています。名前を変更した場合は、コード内で一致するように変更する必要があります。

1) 開発者ツールバーを表示します。

[http://www.traineetrader.com/excel-quick-tips-howto-enable-the-developer-toolbar-in-excel-20102011/][1]

2)開発者ツールバーで挿入をクリックし、ボタンを追加します(場所は関係ありません)

3) ボタンを右クリックして [マクロの割り当て] をクリックし、[新規] をクリックします。

4)このコードはそれを行う必要があります:

Sub Button1_Click()

Dim row As Integer

row = 1
newrow = 1

Do Until Worksheets("Sheet1").Cells(row, 1).Value = ""

    If Worksheets("Sheet1").Cells(row, 2).Value <> "" Then

    Worksheets("Sheet2").Cells(newrow, 1).Value = Worksheets("Sheet1").Cells(row, 1).Value
    Worksheets("Sheet2").Cells(newrow, 2).Value = Worksheets("Sheet1").Cells(row, 2).Value

    newrow = newrow + 1

    End If

row = row + 1

Loop

End Sub

ご不明な点がございましたら、お知らせください。

于 2012-07-27T13:49:18.790 に答える