Excel 如何在VBA中的另一个函数上调用我在VBA中创建的函数?
我在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
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
的日子?你到底想实现什么?我之所以问这个问题,是因为我认为在这种情况下,不需要在函数中调用函数。。。我有一种感觉,您可能不知道(没有冒犯的意思)一个过程和一个函数的作用。。所以一定要让我们知道你到底想要实现什么。。。