首页 > 解决方案 > 做2次

问题描述

我有这个代码的问题。我从来没有在代码中使用过 2 次。甚至有可能吗?无论如何,我正在发送我的代码 vba 在第二个循环中给我错误(在艺术 <zm+1 时执行)。请帮我修复它。我的意思是我想首先从工作表(kod)中过滤工作表(工作表3)产品ID,然后复制并粘贴到另一个工作表,直到我没有空范围(aa),在第二个循环中我想要它直到我不会L 列中的空值。

Sub production()
Dim art As Long
art = 2
y = 2
og = 1
ss = Application.WorksheetFunction.CountA(Workbooks("design.xlsm").Worksheets("KOD").Range("A:A"))
zm = Application.WorksheetFunction.CountA(Workbooks("design.xlsm").Worksheets("sheet4").Range("l:l"))

Do While og < ss + 1
Sheets("Sheet3").Select
    ActiveSheet.Range("$A$5:$l$100000").AutoFilter Field:=2, Criteria1:= _
        Sheets("KOD").Cells(og, 1).Value
        
    Sheets("sheet3").Range("a1").Select
    Range(Selection, Selection.End(xlToRight).End(xlDown)).copy Sheets("sheet4").Range("a1")
        

    
    
    zm = Application.WorksheetFunction.CountA(Workbooks("design.xlsm").Worksheets("sheet4").Range("l:l"))
    Sheets("sheet4").Select
    Range("Q30:AR30").Select
    Selection.ClearContents
                Do While art < zm + 1
                x = Sheets("SHEET4").Range("q29:Aq29").Find(Range("l" & art), LookAt:= _
                    xlWhole).Column - 1
                Sheets("SHEET4").Range("C" & y).copy Sheets("SHEET4").Range("A30").Offset(0, x)
                art = art + 1
                y = y + 1
    Loop

Sheets("sheet4").Range("q30", "aq30").Select
 Selection.copy
Sheets("Sheet1").Select
Range("A2:A44").Select
Columns("A:A").Select
Selection.Find(Sheets("sheet4").Range("o30"), After:=ActiveCell, LookIn:= _
    xlFormulas2, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False).Offset(2, 2).Select
ActiveSheet.Paste
        

Loop

End Sub

标签: excelvbaloopswhile-loopdo-while

解决方案


推荐阅读