如何将一列与包含一些空白单元格的列匹配?

时间:2018-10-18 17:01:32

标签: excel vba

我正在尝试匹配F列(第2页)

enter image description here

带有A列(表格1)。

enter image description here

以便获取记录

enter image description here

我有一个VBA方法-

Sub matchAndSortSort()
    Dim st As Worksheet
    Dim rw As Long

    Set st = Sheets("Sheet4")

    rw = st.UsedRange.Rows.Count

    For i = 2 To rw
        st.Cells(i, 125).Value = "=MATCH(F" & i & ",$A$2:$A$" & rw & ",0)"
    Next

    Range("F2:V" & rw).Sort Key1:=Range("G2:V" & rw), Order1:=xlAscending
    Range("H2:H" & rw).Clear

    Set st = Nothing
End Sub

这给了我匹配的输出,但没有考虑空白单元格。

如何跳过空白单元格并将所有匹配的行值恰好放在A列值的前面?

1 个答案:

答案 0 :(得分:0)

要跳过空白值,可以使用以下两个之一:

For i = 2 To rw
If Len(st.Cells(i, 125).Value) > 0 Then 'If the length of the cell is greater than 0 then proceed, otherwise skip
st.Cells(i, 125).Value = "=MATCH(F" & i & ",$A$2:$A$" & rw & ",0)"
End if
Next

或者这也应该起作用:

For i = 2 To rw
If Trim(st.Cells(i, 125).Value) <> "" Then 'Remove trailing spaces or end spaces then proceed, otherwise skip
st.Cells(i, 125).Value = "=MATCH(F" & i & ",$A$2:$A$" & rw & ",0)"
End if
Next

您对我的问题的第二部分不了解,也许其他人可以继续进行该部分:)

“ &&将所有匹配的行值精确地放在A列值的前面吗?”