vba - 引用 UDF 中的特定单元格

标签 vba excel for-loop user-defined-functions

UDF 目标:将范围的值与同一工作表上的特定单元格进行比较。

发生错误 #Value! .

我认为,将通行证设置为此单元格的问题 ThisWorkbook.ThisWorksheet .如何胜任?

Function Fav(Diapozon As Range) As Long
    Application.Volatile

    Dim n As Long

    For x = 1 To 4
        For y = 0 To 1
            If Diapozon.Value = ThisWorkbook.Thisworksheet.Cells(x + 29, y + 10).Value Or  _
               Diapozon.Offset(0, 1).Value = ThisWorkbook.Thisworksheet.Cells(x + 29, y + 10).Value Then
                n = 1
            End If
        Next y
    Next x

    Fav = n
End Function

最佳答案

正确的。也许您的意思是 Activesheet?

Public Function Fav(ByVal Diapozon As Range) As Long
    Application.Volatile
    Dim n As Long, x As Long, y As Long
    For x = 1 To 4
        For y = 0 To 1
            If Diapozon.Value = ThisWorkbook.ActiveSheet.Cells(x + 29, y + 10).Value Or Diapozon.Offset(0, 1).Value = ThisWorkbook.ActiveSheet.Cells(x + 29, y + 10).Value Then
                n = 1
            End If
        Next y
    Next x
    Fav = n
End Function

如果您仅在工作表中将其用作 UDF,则删除工作表引用:
Public Function Fav(ByVal Diapozon As Range) As Long
    Application.Volatile
    Dim n As Long, x As Long, y As Long
    For x = 1 To 4
        For y = 0 To 1
            If Diapozon.Value = Cells(x + 29, y + 10).Value Or Diapozon.Offset(0, 1).Value = Cells(x + 29, y + 10).Value Then
                n = 1
            End If
        Next y
    Next x
    Fav = n
End Function

关于vba - 引用 UDF 中的特定单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51943843/

相关文章:

excel - 更改漏斗图中的轴标签字体大小 (Excel 2016)

vba - 如何使用 vba 创建 ActiveX 按钮并向其添加代码(告诉它要运行哪个子程序)?

arrays - Swift:检测字符串的首字母何时不等于特定字符?

c - 完美数字错误?

c - 我正在尝试构建一个 2*2 数组,但我的程序需要 5 个输入。为什么?

vba - 根据单元格值复制代码

vba - 如何将 COM 公开的 .NET 项目添加到 VB6(或 VBA)引用对话框?

excel - 如何在 Excel 2016 VBA 编辑器中启用 Unicode

python - pandas:Excel输出中的颜色单元格取决于列值

vba - 通过 vba 卡住行,无需激活单个工作表