将现有模块添加到excel中的工作表

时间:2015-08-05 18:31:58

标签: excel vba

我有一个带有vba模块的工作表。它工作正常。我复制了这个工作表并创建了第二个工作表,所以我会在这里使用不同的数据。但是这个新的工作表模块不起作用。我应该如何将其添加到新工作表中,还是我还应该做什么?感谢。

VBA代码:

 Function Super_match(fin As Range, LOD As Range)
   Dim test_arr As Variant
   fin_arr =   Application.WorksheetFunction.Transpose(Application.WorksheetFunction.Transpose(fin))
lod_arr = LOD

ReDim test_arr(1 To UBound(fin_arr))
For l = 1 To UBound(fin_arr)
    test_arr(l) = 0
Next l


For i = 1 To UBound(lod_arr, 1)
    For j = 1 To UBound(lod_arr, 2)
         For k = 1 To UBound(fin_arr)
           If fin_arr(k) = lod_arr(i, j) Then
             test_arr(k) = 1
           End If
         Next k
    Next j

If Application.WorksheetFunction.And(test_arr) Then
    Super_match = 1
    Exit Function
End If

For l = 1 To UBound(fin_arr)
    test_arr(l) = 0
Next l

Next i
Super_match = 0


Debug.Print Super_match1
End Function

和模块的公式:

=Super_match(A2:B2,$H$2:$M$41)

1 个答案:

答案 0 :(得分:2)

您应该能够将此功能添加到代码模块中,将其从工作表模块中删除,然后可以在任何工作表上使用。

添加代码模块:

  • 在VBE(编码窗口)中,转到菜单项"插入"
  • 选择"模块"
  • 将您的功能剪切并粘贴到此模块中
  • 从其他工作表中删除您的任何其他功能实例
  • 选择" Debug"确保您的身体健康。 - > "编译VBA项目"

如果出现问题,您只会收到负面反馈。如果编译成功,那么"编译VBA项目"菜单项现在将显示为灰色。

您现在应该能够在任何工作表的单元格中使用您的功能(在此工作簿中)。