我正在尝试设置一个可持续预算 Excel 工作簿,我可以轻松设置工作表,以命名我想要在摘要中使用的不同类别。这个想法是将收据中的项目添加到不同的工作表中,并归入其特定类别。我希望能够有一个公式来分隔日期和工作表中的文本,以便只获取该工作表中数字的总和。有没有一种简单的方法来设置 isnumber 公式以排除日期?
答案1
考虑以下UDF():
Public Function SuperSum(shName As String) As Variant
Application.Volatile
Dim sh As Worksheet, r As Range, v As Variant
Set sh = Sheets(shName)
For Each r In sh.UsedRange
v = r.Value
If IsNumeric(v) And Not IsDate(v) Then
SuperSum = SuperSum + v
End If
Next r
End Function
用户定义函数 (UDF) 非常容易安装和使用:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除 UDF:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要从 Excel 使用 UDF:
=SuperSum("Sheet2")
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关 UDF 的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其工作!