簡體   English   中英

使用VLookup查找匹配的字符串,然后在行索引處返回列

[英]Finding A Matching String with VLookup then Return Columns at Row Index

建立我先前發布的StackOverflow問題: 通過ROW在列上建立索引並在字符串中查找部分匹配項

我正在創建此變量的變體,但字符串匹配-例如復制整個行(A1:C1),然后在新工作表的下一個空行位置插入。

Sub PeopleFilter()
' Defining Workbook and Worksheets to be used
Dim PeopleWorkbook As Workbook
Dim People As Worksheet
Dim UnitedKingdom, UnitedStates, Canada As Worksheet
' Letting our Variables equal something
Set PeopleWorkbook = ActiveWorkbook
Set People = PeopleWorkbook.Worksheets("People")
Set UnitedKingdom = PeopleWorkbook.Worksheets("United Kingdom")
Set UnitedStates = PeopleWorkbook.Worksheets("United States")
Set Canada = PeopleWorkbook.Worksheets("Canada")
' Defining ranges
Dim PeopleDataRange As Range
' C1 is cell 1 - C2, cell 2
Dim C1 As Range
Dim C2 As Range
' Equating C1 to the cell that is at the 2nd row first column
' Equating C2 to the cell that is at the last row position first column
Set C1 = People.Cells(2, 1)
Set C2 = People.Cells(People.UsedRange.Rows.Count, 1)
' Creating a range out of these two cells
Set PeopleDataRange = People.Range(C1, C2)
' Printing length of Range
Debug.Print PeopleDataRange.Count
' For each row
Dim ThisWorks As Boolean

For Each c In PeopleDataRange.Rows
        If People.Rows(c, 2).Value = "United States" Then
            ThisWorks = True
        Else
            ThisWorks = False
        End If
Next c
End Sub

我目前正在調試它-這就是為什么除了更改布爾值之外,它實際上不做任何事情。 我在遇到錯誤

如果People.Rows(c,2).Value =“美國”,則錯誤代碼:1004-應用程序或對象定義的錯誤

工作流程應如下-找到特定的字符串匹配項后,在索引中搜索索引-復制選定的列。

IE如果在第35行找到了字符串匹配項-將第35行的A,b,c,d ...列返回到新工作表。

主要數據

工作表要插入數據

*編輯-預期結果應為每次循環迭代的時間-布爾值應與查找匹配時變為true

1:正確2:錯誤3:正確4:錯誤5:錯誤6:錯誤*

c不是行號,而是包含A列中單元格的范圍。您需要引用該行:

If People.cells(c.row, 2).Value = "United States" Then

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM