【发布时间】:2017-04-26 19:21:33
【问题描述】:
我正在编写一些 Excel VBA 代码,该代码为发票文档中的每一行用户输入添加一行,并将每一行用户输入复制到该文档。我创建了 5 个相同的 Do Until 循环(我只使用一个作为示例,但除了使用哪一列之外,它们都是相同的)。
如何将五个循环组合成一个循环:
- 浏览一列并在另一张纸上为每个用户输入的项目创建一行
- 将该文本复制到新生成的行中
- 一旦循环到达一列中的空白单元格,它就会移动到下一列
也欢迎任何关于正确代码格式的建议,因为我主要是在 VBA 中自学的。
下面是我的代码:
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
【问题讨论】:
-
是什么阻止您为列创建另一个 for 循环?
-
有点不清楚你到底想做什么。能否提供一些示例数据和预期结果?