我在Excel中有一个名为Combine
的自定义VBA函数。它简单地将多个单元格组合成逗号分隔的刺。
我可以通过执行以下操作添加新功能
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并打开一个新工作表时,该功能消失了,我无法重复使用它。
如何永久保存此功能,以便在创建新工作表时能够重复使用?
答案 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