新的stackoverflow和VBA(以及通常在较小程度上编写脚本)所以,如果我违反了任何规则或犯了任何愚蠢的错误,我会道歉。
目前我有一个包含多个字符串的一维数组。我想构建一个循环,为数组中的每个字符串搜索字符串的sheet1列的所有,然后将包含的行复制到sheet2中的第一个空行。
问题是我找不到一个内置的子程序,它允许我搜索搜索词的多个/所有列,只搜索单个列中的列。我认为有内置的东西可以做到这一点,因为它似乎是一件显而易见的事情 - 我在哪里可以找到它?如果你感觉很亲切并且你有一些示例代码,请发布它:)
谢谢,
路易斯
P.S。如果有人想要推荐一些VBA指南/文档,请做!我的google fu很弱,到目前为止我找不到多少。
答案 0 :(得分:0)
这不是一个非常有效的代码,但它应该让你非常清楚如何使用循环(列,行,数组)
note :如果您的电子表格中有某种结构(例如标题),那么您可以在行中找到最后使用的列 - 这比循环遍历所有列更有效片材。
Sub doTheJob()
Application.ScreenUpdating = False
Dim ws1 As Worksheet, ws2 As Worksheet, arr() As String, str$, i&, j&, k&
Set ws1 = ThisWorkbook.Sheets(1)
Set ws2 = ThisWorkbook.Sheets(2)
str = "this is your string"
arr = Split(str, " ")
For i = 1 To ws1.Columns.Count
For j = 1 To ws1.Cells(Rows.Count, i).End(xlUp).Row
For k = LBound(arr) To UBound(arr)
If StrComp(CStr(ws1.Cells(j, i).Value), arr(k), vbTextCompare) = 0 Then
ws1.Rows(j & ":" & j).Select
Selection.Copy
Dim nxt&
nxt = ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
ws2.Rows(nxt & ":" & nxt).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Next k
Next j
Next i
Application.ScreenUpdating = True
End Sub
发布编辑 - 现在应该复制整行......