Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何在VBA中的另一个函数上调用我在VBA中创建的函数?_Excel_Vba_User Defined Functions - Fatal编程技术网

Excel 如何在VBA中的另一个函数上调用我在VBA中创建的函数?

Excel 如何在VBA中的另一个函数上调用我在VBA中创建的函数?,excel,vba,user-defined-functions,Excel,Vba,User Defined Functions,我在VBA中创建了一个函数,我想在VBA中创建的另一个函数中调用它。执行此操作的正确语法是什么 这是我要调用的函数: Function AlreadySigned() Dim i As Integer Dim j As Long j = ActiveCell.Row - 1 Dim tmp As String tmp = ActiveCell.Value For i = 3 To j If Cells(i, 2).Value = tmp Then ActiveCell.I

我在VBA中创建了一个函数,我想在VBA中创建的另一个函数中调用它。执行此操作的正确语法是什么

这是我要调用的函数:

Function AlreadySigned()
Dim i As Integer
Dim j As Long
j = ActiveCell.Row - 1
Dim tmp As String
tmp = ActiveCell.Value
For i = 3 To j
    If Cells(i, 2).Value = tmp Then
        ActiveCell.Interior.ColorIndex = 3
    End If
Next i
End Function
在该功能中:

Function AlreadyRegisterLoop()
Dim i As Integer
Dim j As Integer
j = Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To j
    Cells(i, 2).AlreadySigned()
Next i
End Function

但是在第6行中有一个
eror:syntax-eror

不太清楚您要做什么,但这不是调用函数的方式

据我所知,我认为以下内容对你有用

您应该传递一个
Range
对象,并在函数中使用该Range对象,而不是
Activecell

Function AlreadySigned(rn As Range)
Dim i As Integer
Dim j As Long
j = rn.row - 1
Dim tmp As String
tmp = rn.Value
For i = 3 To j
    If ActiveSheet.Cells(i, 2).Value = tmp Then
        rn.Interior.ColorIndex = 3
    End If
Next i
End Function


Function AlreadyRegisterLoop()
Dim i As Integer
Dim j As Integer
j = ActiveSheet.Cells(Rows.count, 1).End(xlUp).row
For i = 3 To j
    Call AlreadySigned(ActiveSheet.Cells(i, 2))
Next i
End Function
演示:


仍然存在eror:“类型不匹配”类型不匹配@Mikku@NoaBenNathan .. 我已将图纸参考更改为活动图纸。现在试试。可怕的不必要的
呼叫
?为什么不使用惯用的VBA:
AlreadySigned ActiveSheet.Cells(i,2)
而不是一些过时的回溯到
GoSub
的日子?你到底想实现什么?我之所以问这个问题,是因为我认为在这种情况下,不需要在函数中调用函数。。。我有一种感觉,您可能不知道(没有冒犯的意思)一个
过程和一个
函数的作用。。所以一定要让我们知道你到底想要实现什么。。。