【问题标题】:Combine five Do Until Loops into one loop Excel VBA将五个执行直到循环合并为一个循环 Excel VBA
【发布时间】:2017-04-26 19:21:33
【问题描述】:

我正在编写一些 Excel VBA 代码,该代码为发票文档中的每一行用户输入添加一行,并将每一行用户输入复制到该文档。我创建了 5 个相同的 Do Until 循环(我只使用一个作为示例,但除了使用哪一列之外,它们都是相同的)。

如何将五个循环组合成一个循环:

  1. 浏览一列并在另一张纸上为每个用户输入的项目创建一行
  2. 将该文本复制到新生成的行中
  3. 一旦循环到达一列中的空白单元格,它就会移动到下一列

也欢迎任何关于正确代码格式的建议,因为我主要是在 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 循环?
  • 有点不清楚你到底想做什么。能否提供一些示例数据和预期结果?

标签: vba excel


【解决方案1】:

您可以每次使用private sub 来触发function

Private Sub autofill() {
  // Your loop
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2015-10-07
    • 2020-11-17
    • 2021-08-27
    • 2018-04-05
    相关资源
    最近更新 更多