调用VBA函数

我有一个调度Excel的macros,列出每个月的日常作为一个单独的Excel工作表。 在我的macros观中,“星期日”表总共每小时工作的小时数,并给我每周的总数。 我试图创build一个函数,使我可以select哪些表我需要尽可能的上限和下限,但我不能得到它的工作。 有什么问题? 目前我有:

Function SampleSum(ByVal ZZ As Integer, ByVal XX As Integer) As Integer Application.Volatile SampleSum = Sheets(ZZ).Range("BA5") + Sheets(XX).Range("BA5") Sheets(XX).Range("BB5") = SampleSum End Function 

我希望能用任何2个数字或variables代替ZZ&XX来“调用”函数。

首先,因为你声明你的应用程序是“volatile”的,所以我不会以编程方式从那里编辑你的工作表,因为它可能进入一个循环: http : //msdn.microsoft.com/en-us/library/office/ff195441 %28v = office.15%29.aspx其次,一个函数返回一些东西。 子程序没有。 如果你只需要写入一个单元格,我会build议使用子程序。

 Function SampleSum(ByVal ZZ As Integer, ByVal XX As Integer) As Integer Application.Volatile SampleSum = Sheets(ZZ).Range("BA5") + Sheets(XX).Range("BA5") End Function Sub Main() Sheets(XX).Range("BB5") = SampleSum(ZZ, XX) End Sub 

ZZ和XX在“主”子可以是您select的数字