如何使此VBA功能适应Google表格

时间:2017-08-14 13:19:18

标签: excel vba excel-vba google-sheets

在工作中我们经常使用这个Excel VBA函数:

Sub Find_Matches()
    Dim CompareRange As Variant, x As Variant, y As Variant
    ' Set CompareRange equal to the range to which you will
    ' compare the selection.
    Set CompareRange = Range("H2:H9")
    ' NOTE: If the compare range is located on another workbook
    ' or worksheet, use the following syntax.
    ' Set CompareRange = Workbooks("Book2"). _
    '   Worksheets("Sheet2").Range("C1:C5")
    '
    ' Loop through each cell in the selection and compare it to
    ' each cell in CompareRange.
    For Each x In Selection
        For Each y In CompareRange
            If x = y Then x.Offset(0, 3) = x
        Next y
    Next x
End Sub

由于偏移功能,它对我们非常有帮助。因为我们可以调整它来比较,例如,选择中的姓名和出生日期,与另一个选择,标记为" x"匹配的结果,然后比较名称和出生日期是否匹配,以确认其是同一个人。

它最终看起来像这样,但是有数千个数据在"比较"和"数据库":

(上面的函数适用于下面的例子,在H中搜索我在A中用鼠标选择的名称,然后我使用另一个更改了出生日期的比较范围,然后在F列中使用IF函数在D和E中查看是否有" x"如果是,则显示"是")

Function results looks like this

但我不知道如何使用谷歌脚本,办公室只有一台计算机具有优势,如果我们可以将功能转换为谷歌并在其他计算机上使用它,那对我们来说会很有效率。无法访问excel和VBA。

那么,在Google工作表中有一个相同的脚本来执行此功能吗?

1 个答案:

答案 0 :(得分:0)

您不需要编写宏来实现此结果。使用内置MATCH函数可以检查是否存在来自另一范围内的值的值。以下是演示如何操作的示例:

enter image description here

在您的特定情况下,这将是例如细胞D3

=arrayformula(if(not(isna(match(A3:A9; H3:H9; 0))); "x"; ""))