vba - 替代命令 (ActiveSheet)

标签 vba excel user-defined-functions worksheet

有用户定义函数(UDF),位于工作簿的所有工作表上。

如何引用该函数所在的工作表?

我正在使用ThisWorkbook.ActiveSheet,但结果不断变化。

Function äëÿñèò(Diapozon As Range) As Long
      'äëÿ ñèòóàöèè
    Application.Volatile
    Dim n As Long
    Dim C As Range
    Dim m As Long

    m = -1
    n = 0
    For Each C In Diapozon.Rows

    If C.Value = 1 Then
     m = m + 1
    If ThisWorkbook.ActiveSheet.Cells(101, 42 + (m * 21)).Value = 1 Then
    n = n + 1
    End If
    End If
    Next C

    äëÿñèò = n
End Function

最佳答案

您可以使用 Application.Caller 来引用正在调用该函数的单元格,因此您可以使用 Application.Caller.Worksheet 来引用该单元格的工作表。

关于vba - 替代命令 (ActiveSheet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47937745/

相关文章:

scala - 是否可以对 Spark UDAF 进行单元测试?

excel - 我可以从数据源导入 INTO excel 而无需迭代吗?

vba - 当我使用 "Professional Excel Development"书中的错误处理方法时如何调试?

excel - VBA向上/向下 move 选定范围(有偏移?)

excel - 无法使用 Selenium 和 VBA 从网页的下拉列表中选择复选框

sql - 如何在查询中使用 (func()).* 语法避免多个函数求值?

excel - 将 Visual Basic 编辑器的语言更改为英语

java - 从 Excel JDBC 将数据插入 MySQL - POI 示例程序

excel - 使用 Matlab 从 Bloomberg 提取数据时如何设置小数位?

java - 使用 Java 语言在 MySQL 中设置 SQL 用户定义函数的问题