2017-06-09 4 views
-2

ドロップダウンリストの変更については、列「I:I」をチェックしているマクロを作成します。このドロップダウンリストには、いくつかのエントリが含まれています。エントリ「拒否」が入力されると、行全体を別のワークシート(「辞退」)にコピーし、メインワークシート(「データ」)の行を削除する必要があります。これは、この行が常にワークシートの前の項目の下にコピーされることを意味します(「辞退」)。VBA:必要に応じて、更新およびコピー行のドロップダウンリストを確認します。

私はWorksheet_ChangeやIntersect関数で作業したことがないので、すべての助けに感謝します。

ご協力いただきありがとうございます。

+1

'Worksheet_SelectionChange'ではなく、' Worksheet_Change'が必要です。 [This](https://stackoverflow.com/questions/13860894/ms-excel-crashes-when-vba-code-runs/13861640#13861640)はあなたを起動させます –

+0

どこに「不承認」と入力していますか?行?私は:同じ「データ」ワークシートにもありますか?いくつかのデータを表示する –

答えて

0

私は、アイデアに感謝を解決策を見つけた:

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim shtDeal As String 
Dim shtDecl As String 
Dim lastrow As Integer 

shtDeal = "Name 1" 
shtDecl = "Name 2" 


If Not Intersect(Target, Range("F1:F10000")) Is Nothing Then 

    On Error GoTo ErrHelp 

    If Target = "Declined by x" Or _ 
    Target = "Declined by y" Or _ 
    Target = "Declined by z" Then 

     lastrow = Worksheets(shtDecl).Range("A" & Rows.Count).End(xlUp).Row + 1 
     Target.EntireRow.Copy Destination:=Worksheets(shtDecl).Range("A" & lastrow) 
     MsgBox "Auf Grund Ihrer Auswahl wurde diese Datenreihe auf das Arbeitsblatt 'Declined' verschoben." 
     Target.EntireRow.Delete 

    End If 

End If 

Done: 
Exit Sub 

ErrHelp: 
End Sub 

多分これは同じ問題で他の人を助けることができます。

関連する問題