对于一般的VBA函数和大多数编程我明白发生这样的事情一般程序执行中移动...被执行的代码执行时不会一个excel VBA函数
子过程内,如果调用函数(它应该返回一个值),在这种情况下,它会返回一个值给变量num。
扩大,这意味着执行到哪里调用该函数的行,然后应该跳过跌到哪里函数编写,并经过执行该函数中的每一行。
这是它以前的工作原理,我以前使用F8键突出显示并按行逐行执行代码。
问题 问题是,当执行到其中函数调用的函数只是跳过和执行不下去的函数内部并运行里面的每一行的子过程中的线。
(我应该说这种情况发生时我有一个工作计划的95%,我尝试了重写的功能,调用等功能)。
但每当一个函数被调用的代码执行不进入函数本身它只是跳过它,并保存功能,因此保留为空的结果的变量。
我试图在函数的开始,当函数被调用的子过程中但是这没有奏效创建断点。
至少,执行应该得到的功能(功能FIRSTROW()等)的定义,并抛出和错误,但它没有这样做。
Sub Main
Dim num as double
Dim sheet_name as string
num = FirstRow(sheet_name)
End Sub
Function FirstRow(sheet as string) as double
select case sheet '<<----- execution never gets inside the function
case "sheet"
FirstRow = 8
case "sheet2"
FirstRow = 12
end select
End Function
对不起但你的问题是不可重复的。当我运行你的子程序时,我会在没有问题的情况下进入函数。你能否添加一个可重复的测试用例? –
我试过在函数中只放一个字符串,所以有一个代替表名的值。两者都不起作用。它只是跳过功能。我无法提供示例工作簿。 – yoshiserry
如果你不能提供一个可重复的例子,我认为你不能在这里得到很多帮助,因为你的代码应该按照你的预期工作,这就是它实际上在我的计算机上所做的。所以无论是你的机器的问题(尝试另一个),或者你正在省略代码的相关部分。 –