0

これが私のシナリオです-シートの列Aに顧客リストがあります-関連データとともに...マトリックスを作成したい別のシートがあります...しかし、行1に沿って顧客リストがあります.

シート 1 の列に追加された新しい顧客をシート 2 の行に追加したい

これはどのように行われますか?

4

1 に答える 1

0

あなたの VBA 機能のレベルはわかりませんが、最初のシートのコード ビハインドで Workhseet_Change イベントをキャプチャできます。

更新されたセルが列 A にあるかどうかを確認できます。そうである場合は、その値をシート 2 の最初の行に追加できます。

開始するのに役立つコードを次に示します。

Private Sub Worksheet_Change(ByVal Target As Range)

    'check to make sure the updated cell (Target) is in column 1 (column A)
    If Target.Column = 1 Then addToSheet2 (Target.Value2)

End Sub

Private Sub addToSheet2(ByVal newValue As Variant)

    Dim ws As Worksheet
    Dim columnCount As Integer
    Dim nextColumn As Integer

    On Error GoTo errTrap

    Set ws = ThisWorkbook.Sheets(2) 'probably want to use the sheet name, instead of the index

    'probably a good idea to check if it already exists in row 1 of sheet 2

    'get the number of columns used in sheet 2
    columnCount = ws.UsedRange.Columns.Count

    'this may be overkill, but if you are starting from scratch, columnCount will be 1 even if
    'there is no data in sheet 2 row 1
    If columnCount = 1 And ws.Range("A1").Value2 = vbNullString Then
        nextColumn = columnCount
    Else
        nextColumn = columnCount + 1
    End If

    ws.Cells(1, nextColumn).Value2 = newValue

errTrap:
    Set ws = Nothing

End Sub
于 2012-05-16T21:53:52.873 に答える