如何在Excel中永久存储自定义功能?

时间:2017-03-01 14:37:00

标签: excel vba excel-vba excel-formula

我在Excel中有一个名为Combine的自定义VBA函数。它简单地将多个单元格组合成逗号分隔的刺。

我可以通过执行以下操作添加新功能

  1. 我点击了ALT + F11
  2. 然后我点击"插入"然后"模块"
  3. 我将以下VBA代码插入其中
  4. Function Combine(WorkRng As Range, Optional Sign As String = ",") As String
    Dim Rng As Range
    Dim OutStr As String
    For Each Rng In WorkRng
        If Rng.Text <> Sign Then
            OutStr = OutStr & "'" & Rng.Text & "'" & Sign
        End If
    Next
    Combine = Left(OutStr, Len(OutStr) - 1)
    End Function
    

    然后我可以像Combine(A1:A25)那样轻松地执行这个功能,通过用单个配额包装它们并用逗号分隔值来组合所有单元格A1到A25。

    然后问题是,当我关闭excel并打开一个新工作表时,该功能消失了,我无法重复使用它。

    如何永久保存此功能,以便在创建新工作表时能够重复使用?

2 个答案:

答案 0 :(得分:2)

在Excel文件中编写函数后,将文件另存为.xlam文件。这是一个Excel插件文件。

然后你需要转到选项和插件并加载你的文件。

现在推进这个&#39;文件&#39;永远是开放的。

您可以随时点击alt-f11进行访问。

link with details来自着名的ozgrid

答案 1 :(得分:0)

我使用此技巧在从VBA添加的工作簿中使用自定义函数(mfdate):

Workbooks.Add
sheetArr = Range("AM2:AM10").Value
For i = 1 To UBound(sheetArr, 1)
    For j = 1 To UBound(sheetArr, 2)
        If Len(CStr(sheetArr(i, j))) Then sheetArr(i, j) = MfDate(CStr(sheetArr(i, j)))
    Next j
Next i
Range("AM2:AM10").Value = sheetArr