2016-07-27 50 views
0

我有一個電子表格,您按下了一個窗體控件按鈕,並且會提示一個輸入框,要求您輸入非商店項目。然後,如果您在輸入框中輸入某些內容,它會將其放入單元格A19中,然後它會詢問您該項目的前置時間並將其放入C19中。如果您沒有在非商店物料輸入中輸入任何內容,它將不會在提貨箱中顯示提前期。如何運行一個輸入框的循環,將數據放在VBA中的不同行上

我想要發生的是我按下按鈕,它會詢問您是否有非商店商品,如果您輸入任何商品,它會將其分配給A19,然後詢問您的提前期並將其分配給C19 ,然後循環回詢問非商店材料的名稱,如果您輸入了任何內容,則將其分配給A20,然後將時間交給C20。如果您在詢問非商店名稱時輸入空白,它就會結束。我也希望這能夠輸入一些信息,然後你可以按下按鈕,如果A19中有一些值,它會把它放在下面的行中。

這裏是我當前的代碼:

Sub Non_stores_material_entering() 


If ActiveSheet.Range("A19") = "" Then 
NonStores = InputBox("What is the Non-Stores Material?") 
Range("A19").Select 
ActiveCell.Value = NonStores 
Else: 
End If 

If ActiveSheet.Range("A19") = "" Then 
Else: 
LeadTimes = InputBox("What is the Non-Stores Material's Lead TIme?") 
Range("C19").Select 
ActiveCell.Value = LeadTimes 
End If 


End Sub 

這是它看起來像一個可視化的目的。 Non-Stores Spreadsheet Picture

+0

所以,你真的只是希望數據入口在單元格A18下面的第一個非空單元格開始? – dbmitch

+0

@dbmitch是的,這是正確的,我希望它循環,直到第一個輸入框收到空白條目 –

回答

3

A 'Do ... Loop Until'將在這裏爲您服務。

Sub Non_stores_material_entering() 

Dim ws as Worksheet 
Set ws = Worksheets("Sheet1") 'change name as needed 

Do 

    NonStores = InputBox("What is the Non-Stores Material?") 

    If Len(NonStores) Then 

     Dim lRow As Long 
     lRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Offset(1).Row 

     ws.Cells(lRow, 1).Value = NonStores 

     LeadTimes = InputBox("What is the Non-Stores Material's Lead TIme?") 

     ws.Cells(lRow, 3).Value = LeadTimes 

    End If 

Loop Until Len(NonStores) = 0 


End Sub 
相關問題