【发布时间】:2017-03-08 22:09:06
【问题描述】:
我有以下问题。
在下面的代码中,我试图让我的 sub 在 if then 语句之后运行一个循环,然后让代码返回第一个循环并从下一个 i 开始。在我下面的代码中,一切正常,但是当满足第一个 IF- 语句中的条件时,它会启动第二个循环,然后立即退出它而不运行它。
所以我的问题是,如何在 IF- 语句中的 then 语句之后创建循环?
Sub Sort3()
Dim i As Integer
Dim LastRow As Long
Dim lenght As String
Dim LastRow_2 As String
Dim L_text As Variant
Dim R_text As Variant
Dim M_text As Variant
ThisWorkbook.Sheets("EQ_CLEAN").Select
LastRow = Range("G" & Rows.Count).End(xlUp).Row
LastRow_2 = Range("J" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
lenght = Range("G" & i)
If Len(lenght) = 25 Then
L_text = Left(Range("A" & i), 12)
R_text = Right(Range("A" & i), 12)
For x = 2 To Last_row_2
On Error Resume Next
n = Worksheets("EQ_CLEAN").Range("D1:D6000").Cells.SpecialCells(xlCellTypeConstants).Count
If L_text <> Sheets("EQ_CLEAN").Range("J" & x) Then
Sheets("EQ_CLEAN").Range(Cells(x, 1), Cells(x, 2)).Select
Application.CutCopyMode = False
Selection.Copy
Range("D" & (n + 1)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If
Next x
End If
Next i
End Sub
【问题讨论】:
-
注释掉
On Error Resume Next,看看你是否遇到了运行时错误。 -
.Select应该尽可能避免使用良好的 VBA 代码编写习惯。我会leave this here 供您阅读。如果您打算继续编写 VBA,从长远来看,它将对您有所帮助。 :)
标签: excel loops if-statement vba