日常工作生活中,我們處理表格時,需要提取一個工作簿中特定行的内容,下面将介紹利用VBA,快速的提取我們想要的内容。
例如下圖,我們想要提取第一列内容為"b"的所有行的内容,代碼如下:
Sub 提取特定行()
Dim arr, arr1(1 To 1000, 1 To 8) '聲明兩個數組變量
Dim x, k
arr = Range("a1:h11")
For x = 1 To UBound(arr) ‘表示arr數組中最大一行
If arr(x, 1) = "b" Then
k = k 1
arr1(k, 1) = arr(x, 1)
arr1(k, 2) = arr(x, 2)
arr1(k, 3) = arr(x, 3)
arr1(k, 4) = arr(x, 4)
arr1(k, 5) = arr(x, 5)
arr1(k, 6) = arr(x, 6)
arr1(k, 7) = arr(x, 7)
arr1(k, 8) = arr(x, 8)
End If
Next x
Range("a15").Resize(k, 8) = arr1 ’此處表示以a15單元格為起點的k行8列的内容
End Sub
結果如下圖所示:
下面将介紹一種需要清空數組的例子,如下圖,我們需要将第一列中的内容以空行為界,分别提到D列,E列,F列中。
代碼如下:
Sub 清空數組()
Dim arr, arr1(1 To 1000, 1 To 1)
Dim x, m, k
arr = Range("a1:a16")
For x = 1 To UBound(arr)
If arr(x, 1) <> "" Then
k = k 1
arr1(k, 1) = arr(x, 1)
Else
m = m 1
Range("c1").Offset(0, m).Resize(k) = arr1
Erase arr1 '表示将arr1數組中的内容清除掉
k = 0
End If
Next
End Sub
,