我正在努力整理我的编码。为此,我想将很多代码转换为函数。
在Java中,它的工作方式(确切地说是?)我的代码如下所示。
行OriginateDateItems()
将执行以下功能:
Function OriginateDateItems()
currentMonth = Format(Date, "mmmm") 'July
currentDate = Format(Date, "mm-dd-yy") '06-09-15
currentYear2char = Format(Date, "yy") '15
currentYear4char = Format(Date, "yyyy") '2015
currentFiscalMonth = Format(DateAdd("m", 1, Date), "mm") '08
wsDate = currentFiscalMonth & currentYear4char '082015
End Function
是否有人能够解释如何在不使用=
或某种类型的情况下调用函数?
非常感谢。
答案 0 :(得分:2)
你想要一个sub而不是一个函数。函数用于返回值。
更改
Function OriginateDateItems()
到
Sub OriginateDateItems()
然后通过
调用它OriginateDateItems
您不需要()来调用子。 要调用函数,你会
value = functionName()
答案 1 :(得分:2)
>>> test[0]
IndexError: 0-d arrays can't be indexed
>>> dict(test)
TypeError: iteration over a 0-d array
>>> test.astype(dict)
array({'one': 1}, dtype=object) # still in array
始终返回一个值。所以它意味着用作Function
现在something = OriginateDateItems()
只是为了运行一些东西。
如果您将函数编写为sub:
Sub
然后你所有的变量(currentMonth,currentYear等)必须是全局的(在任何sub之外),否则它们是不可见的。
只需将其称为
即可Sub OriginateDateItems()
currentMonth = Format(Date, "mmmm") 'July
vcurrentDate = Format(Date, "mm-dd-yy") '06-09-15
currentYear2char = Format(Date, "yy") '15
currentYear4char = Format(Date, "yyyy") '2015
currentFiscalMonth = Format(DateAdd("m", 1, Date), "mm") '08
wsDate = currentFiscalMonth & currentYear4char '082015
End Sub
如果您希望sub将其返回到调用它的代码,则可以将所有参数传递为Call OriginateDateItems
:
ByRef
然后你称之为:
Sub OriginateDateItems(ByRef CurrentMonth, byref vcurrentDate, .....)
currentMonth = Format(Date, "mmmm") 'July
vcurrentDate = Format(Date, "mm-dd-yy") '06-09-15
currentYear2char = Format(Date, "yy") '15
currentYear4char = Format(Date, "yyyy") '2015
currentFiscalMonth = Format(DateAdd("m", 1, Date), "mm") '08
wsDate = currentFiscalMonth & currentYear4char '082015
End Sub
答案 2 :(得分:1)
您可以通过以下两种方式调用函数:
'calling function without parentheses
OriginateDateItems
'calling function with parentheses
Call OriginateDateItems()
如果您的函数没有参数,编辑器可能会在第二个示例中删除您的括号。
正如Chuck所说,你也可以改变"功能"在你的代码中" Sub"如果没有返回值。它相当于" void Function"在Java中。除非你有参数,否则这对上面的调用语法没有任何影响。
如果您有参数并使用Call或返回值,则需要括号。
答案 3 :(得分:0)
只需更改
即可Function OriginateDateItems()
到子
Sub OriginateDateItems()
然后您可以通过名称
调用您的函数