自动计算Excel VBA UDF与单元格属性相关

2024-06-01

我编写了一个 UDF 来计算特定颜色和特定线条样式的单元格,我发布了整个函数:

Function CountTime(rData As Range, cellRefColor As Range) As Variant    

    Dim indRefColor As Long
    Dim cellCurrent As Range
    Dim cntRes As Variant

    Application.Volatile

    cntRes = 0
    indRefColor = cellRefColor.Cells(1, 1).Interior.Color
    For Each cellCurrent In rData
        If indRefColor = cellCurrent.Interior.Color Then
            cntRes = cntRes + 1
        End If
        If cellCurrent.Borders(xlDiagonalUp).LineStyle <> xlNone Then
            cntRes = cntRes + 0.5
        End If
    Next cellCurrent

    CountTime = cntRes
End Function

现在,我遇到的问题是,当其中一个单元格之一时,公式不会自动计算rData它的颜色或线条属性是否已更改。 我已经添加了Application.Volatile,我还尝试通过Worksheet_Changesub,但是这不起作用,因为 Excel 似乎不考虑更改颜色来更改单元格/工作表。

当用户更改单元格的颜色或线条属性时,有什么方法可以使单元格自动计算和更新rData?

编辑——已解决 非常感谢 ignotus,ChangeSelection 解决方法足以满足我的目的。没想到这一点。 而且背景信息也很方便,非常感谢。


我认为这是不可能的,但一个相当公平的解决方案是在离开单元格或更改它时重新计算:

Private Sub Worksheet_Change(ByVal Target As Range)
    Me.Calculate
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Calculate
End Sub

或者作为替代方案,在工作表上放置一个按钮来调用Me.Calculate

仅供参考:什么是Me? Source http://forum.chandoo.org/threads/proper-use-of-me-in-vba.14980/

Me指的是代码“所在”的父对象。如果您在 Sheet 模块中编写,则Me将参考该特定表。

Using Me很方便,因为我们不必担心工作表名称的更改,而且它也使未来的代码读者更容易,因为他们不必记住“主用户窗体”是我们当前正在处理的用户窗体。您可以将相同的方法应用于Me如果您提供全名,您将能够应用于该对象。

Sheet1 module,以下几行的用途相同:

Worksheets("Sheet1").Range("A1").Select
Me.Range("A1").Select
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动计算Excel VBA UDF与单元格属性相关 的相关文章

  • 是否可以编写自定义 Power Query 连接器?

    在 来自其他来源 下的 Power Query 中 我们看到许多专业提供商 Facebook SAP SalesForce 等 我有兴趣编写一个自定义提供程序来访问无法通过任何内置连接器使用的本地专有数据存储 我知道 访问没有支持连接器的数
  • 在 VBA 中调用批处理文件无法正常工作

    我正在尝试创建一个可供其他人使用的程序 目前 我的文件位于目录中C Documents and Settings jpmccros Desktop test 该目录包含我的macro xlsm names bat 还有另一个子目录名为Dat
  • 错误:如何读取 Excel 中的空单元格

    我正在尝试使用 POI 从 Excel 读取数据 如何检查该单元格是否为空单元格 我不知道缺少什么我认为这应该有效 java util Iterator
  • Worksheet_Change 事件未触发

    我的 Excel 项目在家中可以正常运行 带有Excel 2010 但不能在两台工作计算机上 使用Excel 2016 并且我怀疑Worksheet Change事件就是问题 当用户进行更改时 黄色条 屏幕截图中 应再次变为白色 但事实并非
  • 如何使用 Office.js 获取单元格的格式

    我正在开发一个 Excel 加载项 它提取单元格 A1 的文本 包括其格式 并在其自己的区域中显示文本 所以添加包含这个 见下面的截图 显示格式化文本的区域 开始提取的按钮请点击查看图片 https i stack imgur com oy
  • 条件格式化VBA多个条件

    我对 VBA 世界非常陌生 需要一些关于条件格式的 VBA 方面的帮助 1 我需要将条件格式应用于列 M 7岁以下绿色 黄色从7 20 红色大于20 最重要的条件是 如果列 N 声明 NOPO 则我不希望应用条件格式 我已经制定了一个公式来
  • 将一个大的 xlsx 文件导入到 R 中?

    我想知道是否有人知道从 大 xlsx 文件 20Mb 导入数据的方法 我尝试使用 xlsx 和 XLConnect 库 不幸的是 两者都使用 rJava 我总是收到相同的错误 gt library XLConnect gt wb lt lo
  • 使用 python 只读取 Excel 中的可见行

    我想只读取 python 中 Excel 工作表中的可见行 输入 Excel表 所以当我过滤时 作为 python 中的输出 在本例中我将仅获得可见数据 1 行 这是我的代码 from openpyxl import load workbo
  • 父子进程隔离和子进程列表

    请阅读以下模板 PID Status LPID 10 Closed 25 11 Open 25 31 Open 31 25 Closed 25 54 Open 31 17 Open 17 20 Closed 31 88 closed 77
  • 重新查询时如何避免转到第一条记录?

    在 Access 2010 中制作一个表单 我试图制作一个移动到下一条记录 如果在末尾则为第一个记录 的按钮 但因为我想考虑其他用户对已发生的数据集的更新与此同时 我在转到下一条记录之前重新查询表单 我正在使用以下代码 改编自这个帖子 ht
  • 如何使用其基本名称而不是 Item(#) 选择 XML 子节点?

    我有点陷入以下困境 我尝试使用 VBA 将当地银行网站的汇率获取到 Excel 主要用于 XML 解析练习 我想说这是我第一次认真的尝试 经过几个小时的谷歌搜索和阅读相关的 SO 问题后 我得到了或多或少可行的解决方案 但我想对其进行优化以
  • 对通过 VBA 导入/链接的表禁用安全警告

    如何阻止通过导入表弹出此窗口DoCmd TransferSpreadsheet 我正在导入相当多的表 因此必须在弹出窗口中为每个表单击 打开 这很烦人 我试过了DoCmd SetWarnings False但这似乎不起作用 我知道也可以设置
  • 在 Excel VBA 中,如何保存/恢复用户定义的过滤器?

    如何使用 VBA 保存并重新应用当前过滤器 在 Excel 2007 VBA 中 我试图 保存用户在当前工作表上拥有的任何过滤器 清除过滤器 做东西 重新应用保存的过滤器 看一下捕获自动筛选状态 http www mrexcel com f
  • 使用VBA在网页中填写用户名和密码

    这是我第一次尝试通过 VBA 浏览 IE 浏览器 我在尝试着 转到此网页https hb2 bankleumi co il e Login html https hb2 bankleumi co il e Login html 填写用户名
  • excel vba范围单元格错误对象定义[重复]

    这个问题在这里已经有答案了 我一直在 Excel 中开发一个宏 该宏对一张工作表 次要 中的表格进行排序 当满足条件时 它应该将该表中的数据添加到第二张工作表 Sheet1 中的另一个表格中 但是我一直运行时出现 1004 错误 对象未定义
  • VBA Excel - 如何在 Excel 数组中显示不相等的值

    所以目前我在Excel中有两个数据输入 数据1和数据2 我需要一个公式或某种形式来显示结果 目前这是一个手动过程 使用方法Filter 功能 Function test ByVal a ByVal b Optional Delim As S
  • 有没有办法加快此 VBA 宏的运行速度,以在大范围内执行 1000 次 Vlookup?

    Sub Questionnaire to Ventilation Questionnaire to Ventilation Macro Keyboard Shortcut Ctrl Shift M Application ScreenUpd
  • 在 Excel 中使用嵌套 IF 语句

    ID Height Phase Corrected Height Final 1 0 A 0 0 2 1 2 A 1 2 1 2 3 3 9 A 3 9 3 9 4 5 8 A 5 8 5 8 5 4 6 A NA 7 7 6 7 7 A
  • 在 VBScript 中的 SQL 字符串中使用 Excel 命名范围

    我已经在这里和谷歌上搜索过 但仍然无法解决我的问题 我正在尝试在我的中等效地使用 Excel 的命名范围 vbs文件 下面的代码可以在 excel 中的 VBA 中运行 但我无法让它在 vbs file ThisWorkbook Sheet
  • 在不打开文件的情况下操作/复制 .CSV 数据?

    我正在尝试优化一些代码 这些代码使用存储在 CSV 文件中的一些测试数据进行一些分析并将其数据复制到 Excel 工作表中 此代码通常一次运行数百个测试 每个测试大约需要 4 5 秒 因此有时可能需要几个小时才能完成 我查阅了一些优化技术

随机推荐

  • 无法使用 vcglib 简化 3D 模型,断言“0”失败

    I used vcglib https github com cnr isti vclab vcglib简化 3D 模型文件 我使用了 master a8e87662 git 存储库 我运行示例 trimesh clustering htt
  • Android - 如何访问 onResume 中 onCreate 中实例化的 View 对象?

    In my onCreate 方法 我正在实例化一个ImageButton View public void onCreate Bundle savedInstanceState super onCreate savedInstanceSt
  • 合并两个位图图像(并排)

    任何人都可以帮助将两个位图图像合并为单个位图 在android中 并排 谢谢 尤瓦拉吉 您可以使用Canvas 查看这篇文章 http www jondev net articles Combining 2 Images in Androi
  • C/C++ 中的“-->”运算符是什么?

    看完之后C STL 的隐藏特性和黑暗角落 http groups google com group comp lang c moderated msg 33f173780d58dd20 on comp lang c moderated 我非
  • ImageView 中的全尺寸图像

    我正在尝试在 ImageView 中绘制图像 但我希望它不缩放 并根据需要使用滚动条 我怎样才能做到这一点 现在我只有一个可绘制集作为 XML 中 ImageView 的 android src 这会自动缩放图像以适应屏幕宽度 我读到这可能
  • 使用javascript在谷歌地图中绘制多边形

    我想在谷歌地图中绘制多边形 我正在使用示例代码http jsfiddle net rvsMH 1 http jsfiddle net rvsMH 1 但它不起作用并且没有获取数组或纬度 经度值 我不知道出了什么问题
  • Node.js 进行 rsa 加密的正确方法?

    我正在尝试创建一个 WS 来发出肥皂请求 在消息正文中有一个包含加密文本的字段 我有公钥来加密文本 但我获得的唯一结果是文本无法识别 我使用节点的加密模块来发出请求 并且文本已加密 但我不知道为什么没有正确加密 PS我用 openssl p
  • 使用请求验证 SSL 证书

    我正在尝试验证 SSL 但它不起作用 我在浏览器上访问了我想要访问的机密网站 在 Chrome 上 我单击了储物柜 gt 证书 gt 详细信息 gt 复制到文件 gt base64 gt cert cer 我的代码是 test reques
  • 规范化现有的 MS Access 数据库

    我有一个大型访问数据库 需要将其规范化为五个表和一个查找表 我了解标准化背后的理论 并且已经勾勒出表格的外观 但我不知道如何转换我的表格以使数据库标准化 表分析器没有提供我想要的细分 如果您只有一个表 请向其中添加自动编号字段 然后创建其他
  • 路径中包含空格的 Firestore 安全规则

    我需要为名为 测试用例 的子集合创建一个 firestore 规则 由于 firestore 规则不是用 javascript 编写的 因此我似乎无法在匹配后获取路径来接受空格而不会出现错误 我尝试过引号 转义字符的反斜杠 以及将整个路径放
  • java中的csv到pdf文件

    我正在尝试获得一个csv文件解析为pdf 到目前为止我所拥有的内容附在下面 我的问题是这段代码最终出现在 pdf 中的文件在 csv 文件的第一行被截断 我不明白为什么 附示例 本质上我想要一个没有任何操作的 csv 文件的 pdf 版本
  • Flutter 容器的 onTap 方法

    一直在开发一个 flutter 应用程序并根据一些 Firebase 数据动态构建一些容器 我想知道是否有办法获得容器的 onTap 方法 或任何不是按钮的小部件 这是一个代码示例 child new Container INSERT ON
  • 如何让CQRS适应项目? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我发现了一个新术语 名叫CQRS 命令查询职责分离 http martinfowler com bliki CQRS html其中指出 概念模型
  • 使用转义序列渲染文本(如终端)

    你好 我正在寻找一些库或工具来在文本文件中呈现带有转义序列字符的文本 我不知道如何称呼它 但这是一个例子 echo e abc vdef abc def echo e abc vdef gt tmp xxxxx vi tmp xxxxx 我
  • Magento 中的 jquery/prototype 冲突

    这是一个基于 Themeforest 的 Acumen 主题的 Magento 商店 出乎意料的是 jquery 的东西现在不起作用了 Acumen 通过 magento 静态块加载 jquery 但这些都没有被触及 昨天我正在努力添加 j
  • 输入类型=“时间”超过24小时

    我刚刚遇到以下问题 在网络应用程序用户界面中 我希望用户输入响应消息的时间范围 以小时为单位 时间范围应最长为 72 小时 我们很乐意使用
  • Google 地图查询返回的 JSON 包含像 \x26 这样的编码字符(如何解码?)

    在 Java 应用程序中 我获取 JSON 来自 Google 地图 其中包含以下字符 x26我想将其转换为其原始字符 据我所知 这是一个 UTF 8 表示法 但我不完全确定 在源 JSON 中 可能会出现各种编码字符 例如 x3c div
  • jqgrid 在编辑框中选择不正确的下拉选项值

    我正在使用表单编辑 表单中有两个选择框 一个选择框是国家 地区 另一个选择框是州 州选择框取决于所选的国家 地区 并将动态填充 例如 Country 美国 期权价值 1 英国 期权价值 2 美国的状态 阿拉巴马州 选项值 1 加利福尼亚州
  • 为什么 Kotlin 数据类可以在 Gson 的不可空字段中包含空值?

    在 Kotlin 中你可以创建一个data class data class CountriesResponse val count Int val countries List
  • 自动计算Excel VBA UDF与单元格属性相关

    我编写了一个 UDF 来计算特定颜色和特定线条样式的单元格 我发布了整个函数 Function CountTime rData As Range cellRefColor As Range As Variant Dim indRefColo