2017-01-10 2 views
0

VBAに1行から250行までの項目のリストを表示するためにユーザーフォームを作成しました。これは、1行を削除するオプションを追加することですその行に対応するボタンをクリックして(そして、可能であれば、残りの行を1つ上に移動することによって)ユーザーフォームを作成します。それは可能ですか?userform VBAで表示されたデータから1行を削除する

Private Sub UserForm_Initialize() 

Dim rngData As Range 
Dim lngRow As Long 
Dim lngCol As Long 

Set rngData = Sheets("MAIN").Range("W1:X250") 
With ListBox1 
    .ColumnCount = rngData.Columns.count 

    For lngRow = 1 To rngData.rows.count 
     For lngCol = 1 To rngData.Columns.count 
      If lngCol = 1 Then 
       .AddItem rngData.Cells(lngRow, lngCol).Text 
      Else 
       .List(lngRow - 1, lngCol - 1) = rngData.Cells(lngRow, lngCol).Text 
      End If 
     Next 
    Next 


End With 


End Sub 

答えて

0

はい、あなたはCommandButtonを追加し、あなたがそれをクリックすると、あなたが(1行の削除を許可する)ListBox1選択した項目のうちListIndexを読みましょう。

(User_Fromコード・モジュール内の)サブのCommandButton1 _CLICK

Option Explicit 

Private Sub CommandButton1_Click() 

Dim RowtoDel As Long 

' listindex starts from 0, while your range starts from 1 >> add 1 
RowtoDel = Me.ListBox1.ListIndex + 1 

Sheets("MAIN").Rows(RowtoDel).Delete 

End Sub 
関連する問題