Excel:visualbasic:range as function输入不';行不通
我从Excel中的VB开始;到目前为止,我还不知道以下几点:; 我有以下功能:Excel:visualbasic:range as function输入不';行不通,excel,vba,range,Excel,Vba,Range,我从Excel中的VB开始;到目前为止,我还不知道以下几点:; 我有以下功能: Function testGetRange(myRange As Range) Dim weekStart As Integer Dim weekEnd As Integer weekStart = myRange(1).Value weekEnd = myRange(2).Value End Function 如果我尝试这样执行它: Sub CreationRapport()
Function testGetRange(myRange As Range)
Dim weekStart As Integer
Dim weekEnd As Integer
weekStart = myRange(1).Value
weekEnd = myRange(2).Value
End Function
如果我尝试这样执行它:
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
testGetRange (testRange1)
End Sub
我遇到了一个类似“object needed”(抱歉,错误消息是法语:“objet requires”)的错误,当我尝试执行该函数时,它立即停止
因此:创建范围,函数将范围作为输入;不知道为什么这不起作用…您正在调用一个函数,这些偏执表示您希望函数返回某些内容:
testGetRange (testRange1)
但是你的函数不会返回任何东西。您可以通过将其添加到testGetRange来修复此问题:
testGetRange ="My return output"
…而且你不会把输出放在任何地方。您可以通过更改CreationReport来解决此问题:
MyOutput = testGetRange (testRange1)
msgbox MyOutput
您正在调用一个函数,而parantesse表示您希望该函数返回某些内容:
testGetRange (testRange1)
但是你的函数不会返回任何东西。您可以通过将其添加到testGetRange来修复此问题:
testGetRange ="My return output"
…而且你不会把输出放在任何地方。您可以通过更改CreationReport来解决此问题:
MyOutput = testGetRange (testRange1)
msgbox MyOutput
您正在调用一个函数,而parantesse表示您希望该函数返回某些内容:
testGetRange (testRange1)
但是你的函数不会返回任何东西。您可以通过将其添加到testGetRange来修复此问题:
testGetRange ="My return output"
…而且你不会把输出放在任何地方。您可以通过更改CreationReport来解决此问题:
MyOutput = testGetRange (testRange1)
msgbox MyOutput
您正在调用一个函数,而parantesse表示您希望该函数返回某些内容:
testGetRange (testRange1)
但是你的函数不会返回任何东西。您可以通过将其添加到testGetRange来修复此问题:
testGetRange ="My return output"
…而且你不会把输出放在任何地方。您可以通过更改CreationReport来解决此问题:
MyOutput = testGetRange (testRange1)
msgbox MyOutput
当您调用一个函数但不需要返回值时,您需要去掉括号
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
testGetRange testRange1
End Sub
还是用电话
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
Call testGetRange (testRange1)
End Sub
有关为什么可以看到VBA如何处理将控件传输到子对象或函数的信息
调用过程时不需要使用Call关键字。
但是,如果使用Call关键字调用需要
参数、argumentlist必须用括号括起来。如果你使用
调用语法来调用任何内在函数或用户定义函数
函数的返回值被丢弃
当您调用一个函数但不需要返回值时,您需要去掉括号
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
testGetRange testRange1
End Sub
还是用电话
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
Call testGetRange (testRange1)
End Sub
有关为什么可以看到VBA如何处理将控件传输到子对象或函数的信息
调用过程时不需要使用Call关键字。
但是,如果使用Call关键字调用需要
参数、argumentlist必须用括号括起来。如果你使用
调用语法来调用任何内在函数或用户定义函数
函数的返回值被丢弃
当您调用一个函数但不需要返回值时,您需要去掉括号
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
testGetRange testRange1
End Sub
还是用电话
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
Call testGetRange (testRange1)
End Sub
有关为什么可以看到VBA如何处理将控件传输到子对象或函数的信息
调用过程时不需要使用Call关键字。
但是,如果使用Call关键字调用需要
参数、argumentlist必须用括号括起来。如果你使用
调用语法来调用任何内在函数或用户定义函数
函数的返回值被丢弃
当您调用一个函数但不需要返回值时,您需要去掉括号
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
testGetRange testRange1
End Sub
还是用电话
Sub CreationRapport()
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
Call testGetRange (testRange1)
End Sub
有关为什么可以看到VBA如何处理将控件传输到子对象或函数的信息
调用过程时不需要使用Call关键字。
但是,如果使用Call关键字调用需要
参数、argumentlist必须用括号括起来。如果你使用
调用语法来调用任何内在函数或用户定义函数
函数的返回值被丢弃
好的,在测试了不同的答案后,这是有效的:
Function testGetRange(myRange As Range) As String
Dim weekStart As String
Dim weekEnd As String
weekStart = myRange(1)
weekEnd = myRange(2)
testGetRange = weekStart
End Function
在小组中:
Sub CreationRapport()
Dim myOutput As String
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
myOutput = testGetRange(testRange1)
MsgBox myOutput
End Sub
MsgBox不是必需的,但是部件myOutput=testGetRange(testRange1)
是必需的!
因此,正如Doug所建议的,我们需要对VB进行更多的研究,以了解其原因。谢谢大家:)好的,所以在测试了不同的答案后,这个方法奏效了:
Function testGetRange(myRange As Range) As String
Dim weekStart As String
Dim weekEnd As String
weekStart = myRange(1)
weekEnd = myRange(2)
testGetRange = weekStart
End Function
在小组中:
Sub CreationRapport()
Dim myOutput As String
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
myOutput = testGetRange(testRange1)
MsgBox myOutput
End Sub
MsgBox不是必需的,但是部件myOutput=testGetRange(testRange1)
是必需的!
因此,正如Doug所建议的,我们需要对VB进行更多的研究,以了解其原因。谢谢大家:)好的,所以在测试了不同的答案后,这个方法奏效了:
Function testGetRange(myRange As Range) As String
Dim weekStart As String
Dim weekEnd As String
weekStart = myRange(1)
weekEnd = myRange(2)
testGetRange = weekStart
End Function
在小组中:
Sub CreationRapport()
Dim myOutput As String
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
myOutput = testGetRange(testRange1)
MsgBox myOutput
End Sub
MsgBox不是必需的,但是部件myOutput=testGetRange(testRange1)
是必需的!
因此,正如Doug所建议的,我们需要对VB进行更多的研究,以了解其原因。谢谢大家:)好的,所以在测试了不同的答案后,这个方法奏效了:
Function testGetRange(myRange As Range) As String
Dim weekStart As String
Dim weekEnd As String
weekStart = myRange(1)
weekEnd = myRange(2)
testGetRange = weekStart
End Function
在小组中:
Sub CreationRapport()
Dim myOutput As String
Dim testRange1 As Range
Set testRange1 = Range("A5:B5")
myOutput = testGetRange(testRange1)
MsgBox myOutput
End Sub
MsgBox不是必需的,但是部件myOutput=testGetRange(testRange1)
是必需的!
因此,正如Doug所建议的,我们需要对VB进行更多的研究,以了解其原因。谢谢大家:)函数通常在末尾返回一些内容,如:
testGetRange=…
。我使用“…”是因为我不能告诉你想要它返回或做什么。也许你只需要一个执行动作的潜艇。了解您希望发生的事情会很有帮助。testGetRange(myRange作为Range)作为字符串[…]testGetRange=weekStart不会改变任何事情:/请阅读有关VBA函数和子函数的一些基本资料。此外,正如我所建议的,告诉我们你希望发生的事情真的会有所帮助。否则我们必须猜测。函数通常在结尾返回一些内容,如:testGetRange=…
。我使用“…”是因为我不能告诉你想要它返回或做什么。也许你只需要一个执行动作的潜艇。了解您希望发生的事情会很有帮助。testGetRange(myRange作为Range)作为字符串[…]testGetRange=weekStart不会改变任何事情:/请阅读有关VBA函数和子函数的一些基本资料。还有,正如我建议的,告诉我们