2016-01-20 52 views
0

所以我做了一個用戶表單,最終我希望能夠根據用戶鍵入到用戶表單中的數字添加行。我的代碼插入行,但我不知道如何將它與用戶窗體和什麼人類型的聯合,我現在的代碼是:引用用戶表單

Public Sub Insert() 
    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 'pre XL97 xlManual 

    lastrow = ActiveSheet.UsedRange.Rows.Count 
    ActiveSheet.Cells(lastrow, 1).Select 

    Set CurrentCell = ActiveSheet.Cells(lastrow, 1) 

    For n = lastrow To 0 Step -1 
     If n = lastrow Then GoTo CheckLastRow 
     If n = 1 Then GoTo CheckfirstRow 
      ActiveCell.Offset(-2, 0).Select 

CheckLastRow: 

Set NextCell = CurrentCell.Offset(-1, 0) 

      ActiveCell.Offset(1, 0).Select 
      For i = 1 To CurrentCell 
       ActiveCell.EntireRow.Insert 
      Next i 

     Set CurrentCell = NextCell 
    Next n 

    'To be performed on the firstrow in the column 
CheckfirstRow: 
      ActiveCell.Offset(-1, 0).Select 
      For i = 1 To CurrentCell 
       ActiveCell.EntireRow.Insert 
      Next i 
    Application.Calculation = xlCalculationAutomatic 
    Application.ScreenUpdating = True 
End Sub 
+1

讀值你的問題和代碼是有點不清楚......究竟是什麼你想完成什麼?您希望用戶輸入一個數字,然後插入許多新的行,但您希望插入的位置和次數? – FredGooch

+0

如果用戶輸入5,我想插入5行。位置在選定的單元格下。謝謝你的時間 –

+0

好吧,你的意思是這是一個單獨的宏嗎?你的'Insert()'代碼不會做你剛纔描述的內容...... – FredGooch

回答

1

如果你只看着服用來自用戶的行數。我會建議使用InputBox。如果您正在查看其他內容並希望僅使用用戶窗體進行操作。嘗試下面的內容,看看它是否有效。

'Procedure that triggers the user Form 
Sub InitiateUserFor() 
UserForm1.Show 
End Sub 
'On Click on Button on UserForm 
Private Sub CommandButton1_Click() 
Call Insert() 
End Sub 

添加一個變量在INSERT()從用戶窗體

Dim RowsToInster as Integer 
RowsToInster =UserForm.TextBox1.Value