当我们平时在处理excel表格时,有时候不需要程序运行完,中途某一步需要强制退出程序。下面将介绍在VBA中如何强制退出程序。因为上次在发布动态数组的使用方法时有点点小错误,在此给大家说声抱歉,所以这次还是举动态数组的例子。
例如下图所示,我们需要将A列中内容为“c”的整行提取出来,然后放在以“e1”单元格为首的单元格中。
我们先看看没有使用退出程序的代码:
Sub t1()
Dim arr, arr1()
Dim x As Integer, k As Integer
arr = Range('a2:d11')
For x = 1 To UBound(arr)
If arr(x, 1) = 'c' Then
k = k + 1
ReDim Preserve arr1(1 To 4, 1 To k)
arr1(1, k) = arr(x, 1)
arr1(2, k) = arr(x, 2)
arr1(3, k) = arr(x, 3)
arr1(4, k) = arr(x, 4)
End If
Next x
Range('e1').Resize(k, 4) = Application.Transpose(arr1)
End Sub
运行完之后的结果如下图:
下面使用强制退出程序的语句。我们的目的是只需要提取'A'列第一次出现“c”的那一行,代码如下:
Sub t2()
Dim arr, arr1()
Dim x As Integer, k As Integer
arr = Range('a2:d11')
For x = 1 To UBound(arr)
If arr(x, 1) = 'c' Then
k = k + 1
ReDim Preserve arr1(1 To 4, 1 To k)
arr1(1, k) = arr(x, 1)
arr1(2, k) = arr(x, 2)
arr1(3, k) = arr(x, 3)
arr1(4, k) = arr(x, 4)
Range('e1').Resize(k, 4) = Application.Transpose(arr1)
Exit Sub '此处表示强制退出sub程序
End If
Next x
End Sub
运行结果如下:
强制退出for循环的使用方法是雷同的,大家可以根据自己的需要灵活使用。
联系客服