Excel 中令人困惑的 VBA 注释插入行为

2023-12-01

我要重写这个请求。我发现我可以更清楚。

在电子表格中,我突出显示要在其中插入标准化注释的单元格。我使用键盘快捷键来激活AddServiceNote并且代码插入具有标准化格式和文本的注释。

一切都有效,但不可重复。我无法选择另一个单元格并使用相同的键盘快捷键添加另一个评论。

我可以使用另一个键盘快捷键来激活FormatNotes所有评论的格式都在其中。神秘的是,这重新激活了我插入另一个标准化评论的能力AddServiceNote.

我错过了一些明显的东西吗?为什么我不能反复插入评论?这有关系吗Set Note = ActiveCell.Comment?

Public Note As Comment

Public Sub AddServiceNote()
    If Note Is Nothing Then
        ActiveCell.AddComment
        Set Note = ActiveCell.Comment
        Note.Text "Function: "
        OrganizeElements
    End If
End Sub

Public Sub FormatNotes()
    For Each Note In ActiveSheet.Comments
        OrganizeElements
    Next
End Sub

Public Sub OrganizeElements()
     Note.Shape.TextFrame.AutoSize = True
     'and a long list of other attributes
End Sub

发生的事情是这样的:

  • 您有一个模块范围变量,Note。它的价值依然存在。
  • 第一次跑步时AddServiceNote, Note Is Nothing是 TRUE,所以If Then代码运行
  • In that If code, Note is Set对某事
  • 下次你跑步的时候AddServiceNote, Note Is Nothing是 FALSE,所以If Then代码确实not run
  • Running FormatNotes执行一个For循环、设置Note在每次迭代中
  • 最后一次迭代之后For loop, Note留下为Nothing(这是一个副作用For)
  • 所以,跑完FormatNotes, AddServiceNote将再次工作(一次)

修复方法很简单

  • 移动Dim Note As ... inside AddServiceNote(发布的代码中没有任何内容需要Note属于模块范围)
  • Change OrganizeElements的签名
    Public Sub OrganizeElements(Note As Comment)
  • 更改呼叫的线路OrganizeElements通过Note作为参数:
    OrganizeElements Note
Public Sub AddServiceNote()
    Dim Note As Comment

    If ActiveCell.Comment Is Nothing Then
        Set Note = ActiveCell.AddComment
        Note.Text Text:="Function: "
        OrganizeElements Note
    End If
End Sub

Public Sub FormatNotes()
    Dim Note As Comment
    For Each Note In ActiveSheet.Comments
        OrganizeElements Note
    Next
End Sub

Public Sub OrganizeElements(Note As Comment)
     Note.Shape.TextFrame.AutoSize = True
     'and a long list of other attributes
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel 中令人困惑的 VBA 注释插入行为 的相关文章

  • OpenArgs 为空问题

    我正在使用OpenArgs使用时发送值的参数DoCmd OpenForm DoCmd OpenForm frmSetOther acNormal acFormAdd acDialog value 然后我用Me OpenArgs在打开的表格内
  • 如何使用 VBA 将 mm/dd/yyyy 更改为 dd/mm/yyyy

    我在使用 VBA 将 mm dd yyyy 转换为 dd mm yyyy 日期格式时遇到问题 我有一个这样的表 仅供参考 该表是从报告工具自动生成的 字符串操作 或任何 Excel 函数可以提供帮助吗 希望知道如何解决这个问题的人可以给我一
  • MS Access 执行 POST Web 请求

    在我的 MS Access 应用程序中 我需要定期向我的网络服务器发送一批信息 我不需要任何花哨的东西 比如 SOAP XML RPC 或任何东西 只需一个简单的 POST 页面请求就足够了 我用谷歌搜索了一下 但找不到任何真正有用的东西
  • Excel VBA 过滤和复制粘贴数据

    给定一个数据集 假设有 10 列 在 A 列中我有日期 在 B 列中我有 我想仅过滤 A 列 2014 年的数据 B 列 ActiveSheet Range A 1 AR 1617 AutoFilter Field 5 Operator x
  • 字典、集合和数组的比较

    我正在尝试找出字典与集合和数组相比的相对优点和功能 我发现了一篇很棒的文章here http www experts exchange com articles 3391 Using the Dictionary Class in VBA
  • 我可以用文本框设置变量名称吗? excel

    我可以使用 TextBox Vba Excel 设置变量的名称吗 我必须以在文本框中写入组名称并单击命令按钮的方式输入新的产品组 代码必须从文本框中获取字符串 并将该字符串设置为新创建的数组的名称 我只想在运行时创建一个新变量 或数组 据信
  • 复制一张工作表上的静态范围,然后根据单元格中的单个值粘贴到另一张工作表中的动态范围

    我对这个问题分为三个部分 我在 Sheet1 A1 中有一个带有周数的单元格 我在 Sheet1 B1 F1 中有一个需要复制的静态范围 然后 我需要将该值粘贴到 Sheet2 中的动态范围中 偏移量为行的周数 这是我正在为我经常使用的工作
  • EPPlus Excel 行高不一致

    我已经使用 EPPlus 生成了一个 excel 文件 在 MS Office 2007 中一切似乎都很完美 但客户端使用的是 MS Office 2010 2013 并且在第 29 行之后未设置行高 这是一个非常奇怪的问题 我已经尝试了
  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • 在Google电子表格中划分整列

    我是 Google 电子表格的一个相对较新的用户 我希望 B 列中的每个单元格都是 A 列 同一行 中内容除以 5 的结果 B1 B2 B3 等 商 应为 A1 A2 A3 等 被除数 除以 5 除数 在示例中 B1 A1 5 我知道一项一
  • 在组合框中显示可见工作表

    您好 我有以下代码来在组合框中显示工作表 创建工作表后 工作表会自动添加到列表中 我不希望隐藏的工作表在保管箱中可见 我怎么做 Option Explicit Private Sub ComboBox1 Change If ComboBox
  • Pandas 0.22.0:IndexError:读取 xls 时列表索引超出范围

    我正在尝试将 282Mb 65536 行 x 138 列 xls 文件加载到 pandas 数据框中 import pandas as pd import os filename r invoicing xls dir os path di
  • 无法摆脱脚本中的硬编码延迟

    我用 vba 结合 selenium 编写了一个脚本来解析网页中可用的所有公司名称 该网页启用了延迟加载方法 因此每个滚动中只有 20 个链接可见 如果我滚动 2 次 则可见链接数为 40 个 依此类推 该网页中有 1000 个可用链接 我
  • 当使用公式生成超链接时,VBA 打开 Excel 超链接不起作用

    使用公式生成的 Excel 超链接似乎存在错误 我使用的是 Excel 2010 我有一个电子表格 其中的单元格包含 URL 我的目标是执行以下两件事 将这些单元格变成超链接 创建一个键盘快捷键来打开这些超链接 这样我就不必使用鼠标了 为了
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report
  • 所以,我有 6 个“主”文件,然后分为 40 个单独的文件

    我将简要描述我想要的内容 我有 6 个 主 文件 每个文件包含 40 个工作表 如下所示 AG 工作簿有 HR Gp 1 到 HR Gp 40 ER 工作簿有 FB Gp 1 到 Gp 40 等 所有工作表都已 平坦 我已经成功创建了一个适
  • numpy NPV 和 Excel NPV 有区别吗?

    我的 Excel 中有一行包含 11 个值 TotalSavings 0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 贴现率为 0 08 我在 Excel 中使用 计算 NPVNPV
  • Excel 工作表名称的有效字符

    在 Java 中 我们使用以下包以编程方式创建 Excel 文档 org apache poi hssf 如果您尝试设置工作表的名称 不是文件 而是内部 Excel 工作表 在以下情况下您将收到错误消息 名称超过 31 个字符 该名称包含以
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • Excel 2013 数据透视表不会更改当前页面,除非手动导航到

    我们有一小段 VBA 代码 多年来一直完美运行 本质上是 Me PivotTables APivot PivotFields AField CurrentPage Some text 这种方法一直有效 直到 Excel 2013 该行将失败

随机推荐

  • 如何控制用户输入的地址显示404

    我想在用户输入未知地址时显示 404 页面 如上图所示 之后我可以控制未知地址index php但不知道如何在之前的部分执行此操作index php part 我编写这段代码是为了控制用户输入的内容index php 看起来你的开发机器上有
  • 支持 DOM 样式访问的 Java JSON 库

    我正在用 Java 编写一个 JSON 风格的查询引擎 它将受益于通过 DOM 路径查询 JSON 文档的能力 就像在 Javascript 中所做的那样 我检查过 GSON 和 Jackson 但似乎都不支持这一点 除了我自己的之外 有人
  • Microsoft graph API:无法使用生成的访问令牌获取用户

    我已在 Azure 门户中注册了该应用程序 并生成了 client secret 我需要客户端授权流程 并且我也授予了应用程序权限 我也已授予管理员同意 因为我自己就是管理员 我可以使用给定的 url 生成访问令牌 https login
  • Rails:找不到railties

    rvm v rvm 1 10 2 by Wayne E Seguin lt email protected gt Michal Papis lt email protected gt https rvm beginrescueend com
  • C++的recv()问题

    我想发送一个字符串 Hello there 但我只收到 re 这是为什么 void Accept SOCKADDR IN sock int intsock sizeof sock remoteSocket accept desc LPSOC
  • Vuejs 3如何将变量传递给槽内的所有元素

    我正在使用 VueJs 3 创建一个动态表组件 其中涉及将循环索引变量发送到插槽内的所有子组件 组件的用法如下
  • 无法加载从带有标识符的包中的笔尖引用的图像

    如果需要复制项目 gt 完成 区分大小写 gt 已注意 图像位于项目文件夹内 这里可能有什么问题 Xcode 版本 9 0 我通过将图像导入资产 Assets xcassets 并从那里引用它来解决这个问题 看起来 Xcode 9 中的构建
  • 如何切换浏览器操作的操作?

    我已经创建了我的第一个 chrome 扩展 它将事件处理程序添加到单击时页面上的所有锚元素 如果用户第二次单击该图标 事件处理程序将重新附加到锚元素并执行两次 我需要以下内容 单击浏览器操作 将事件添加到锚元素 如果可能 请在浏览器操作图标
  • 时间:2019-03-17 标签:c#webrequestpostimagetowebapi

    我在将图像上传到我正在运行的 Web API 时遇到问题 使用 GET 请求时 我可以从 Web API 检索数据 但在处理 POST 请求时遇到问题 我需要将 BMP 图像上传到 Web API 然后发回 json 字符串 HttpPos
  • 如何使用 Google Chrome 扩展更改所选文本的 CSS

    我正在为 Chrome 浏览器制作一个扩展 它使用 contextMenus 来更改所选文本的 CSS 但我无法访问 HTML 结构 即所选文本的父节点 就像在本示例中可以轻松做到的那样 var selection window getSe
  • Instagram ?__a=1 url 不再工作 & graphql/query 获取数据的问题

    4 月 19 日更新 使用cookie几天后ig pr前两天是块 看起来现在获取数据的唯一方法是使用sessionid具有特定值 Original 我正在使用 instagram a 1 url 来阅读 Instagram 用户的所有帖子
  • MySQL:将大表拆分为小表的最快方法

    我有一个非常大的表 其中有近 3 亿条记录 由于 select 查询对我来说太慢了 所以我想将其拆分为大约 800 个小表 数据集如下所示 XXXXXX column2 column3 column4 XXXXXX column2 colu
  • max 的匿名/Lambda 函数

    我正在尝试编写一个单行函数 您可以在其中输入一个数字和一个列表 然后它返回最高值 例如 Input getMax 5 1 4 7 Output 7 这是我当前的代码 getMax Ord a gt a gt a gt a getMax f
  • Scala 类型证据

    在scala源代码中我可以看到这段代码 implicitNotFound msg Cannot prove that From lt lt To sealed abstract class lt lt From To extends Fro
  • Realm 在 android 中进行 IN 查询

    是否可以在 android 中使用 Realm 进行 IN 查询 我的意思是 执行相当于 SELECT X FROM X WHERE x IN 预先非常感谢您 官方IN运算符 自 1 2 0 起 的工作方式如下 public RealmQu
  • 如何在Netbeans IDE之外运行数据库程序?

    我对数据库真的很陌生 这是我使用 java Netbeans 7 1 的第一个数据库程序 现在我们国家是夏天 我是 I T 课程的学生 我们关于编程的下一个主题是关于数据库的 因为没有课程 所以我花时间学习数据库 为下个学期做准备 我将此网
  • 使用 PropSheetLook_OneNoteTabs 样式动态调整 CMFCPropertySheet 大小

    我正在尝试动态调整大小CMFCPropertySheet在每个页面的底部添加自定义控件 由于所有属性页的高度并不相同 因此我有一种机制可以在必要时增加尺寸 为此 我已经重写了OnActivatePage方法并通过使用SetWindowPos
  • 如何将 CSS AnimationEnd 事件处理程序添加到 GWT 小部件?

    我希望我的 GWT 小部件在其CSS动画结束了 在纯 HTML Javascript 中 这可以通过注册事件处理程序轻松完成 如下所示 elem addEventListener webkitAnimationEnd function do
  • 与路由器的发送状态未定义

    我有一个组件 它使用路由器导航到另一个带有布尔变量的组件 如下所示 this router navigate consume course this id state isFirst replaceUrl true 在另一个组件中 我试图像
  • Excel 中令人困惑的 VBA 注释插入行为

    我要重写这个请求 我发现我可以更清楚 在电子表格中 我突出显示要在其中插入标准化注释的单元格 我使用键盘快捷键来激活AddServiceNote并且代码插入具有标准化格式和文本的注释 一切都有效 但不可重复 我无法选择另一个单元格并使用相同