【发布时间】:2018-10-31 16:18:00
【问题描述】:
我有两张工作表,一张包含大型数据集(输入 SAP)的输入工作表和一张我想根据不同标准列出实例但也属于不同类别(输出)的工作表。我想在“输出”中按下一个按钮并获取不同的列表。在下面的代码中,有两个列表,但还会有更多。
输出表将如下所示:E 列将列出所有 SAP 编号,其中输入表中的 H 列为空白。 G 列将列出 O 列等于 0 的所有 SAP 编号。
E 列使用下面的代码正确填充,但 G 列没有任何反应。我不知道如何在同一个子项中填充几列。最后10个不同的列表。
非常感谢任何帮助!
Private Sub CommandButton1_Click()
ReadIncomplete
End Sub
Private Sub ReadIncomplete()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = wb.Worksheets("Output")
Dim iws As Worksheet: Set iws = wb.Worksheets("Input SAP")
irow = ws.Range("E7").Row
RowNo = iws.Range("A2").Row
Do Until iws.Cells(RowNo, 2) = ""
If iws.Cells(RowNo, "H") = "" Then
ws.Cells(irow, "E") = iws.Cells(RowNo, 2)
irow = irow + 1
End If
RowNo = RowNo + 1
Loop
Do Until iws.Cells(RowNo, 2) = ""
If iws.Cells(RowNo, "O") = 0 Then
ws.Cells(irow, "G") = iws.Cells(RowNo, 2)
irow = irow + 1
End If
RowNo = RowNo + 1
Loop
End Sub
【问题讨论】:
-
您不会在 do 循环之间重置您的 RowNo,因此它会从您停止的地方开始选择,当它为空时,并且由于您检查顶部的条件,因此循环不会执行。在那张纸条上,您也应该重置
irow。而不是调用工作表来查找您指定的范围的行,您可以将它们设置为等于行号。即irow = 7和RowNo = 2 -
谢谢,它现在可以完美运行了!