2017-04-26 80 views
0

我正在开发一些优秀的VBA代码,该代码为用户输入的每一行添加一行到发票文档并将每行用户输入复制到该文档。我创建了5个完全相同的Do Until循环(我只用一个作为示例,但它们与使用的列完全相同)。将五个Do直到循环合并为一个循环Excel VBA

我怎样才能在五个环组合成一个循环,将:

  1. 通过一列去和另一片为每个用户输入的项目
  2. 复制文本到新生成的行创建一个线
  3. 一旦循环到达列中的空白单元格,它移动到下一列

上正确的代码格式的任何建议也欢迎,因为我主要是自学成才的VB一个。

下面是我的代码:

Dim Invoice As Worksheet 
Set Invoice = Sheets("Generated Invoice") 
Case1Start = 1 
CheckRow = 20 
BottomRow = 32 

Do Until InputForm.Cells(CheckRow, Case1Start) = "" 
Worksheets("Generated Invoice").Rows(BottomRow).EntireRow.Select 
Selection.Copy 
Selection.Insert Shift:=xlDown 

Invoice.Cells(BottomRow - 1, 2).Value = InputForm.Cells(CheckRow, Case1Start) 
BottomRow = BottomRow + 1 
CheckRow = CheckRow + 1 
Loop 
+0

什么阻止你创建另一个for循环中的列? – jjjjjjjjjjj

+0

这是有点不清楚你到底想做什么。你能提供一些样本数据和预期结果吗? – tigeravatar

回答

0

您可以使用private sub火的function每次

Private Sub autofill() { 
    // Your loop 
}