`
妮子321
  • 浏览: 84544 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VBA实现为Excel中自定义名称的单元格添加批注

阅读更多

一.本地office中通过创建宏实现此需求

1.打开一个Excel文件,在需要插入批注的单元格右击-定义名称(myTable1).点击菜单栏-视图-宏-查看宏-输入宏名-创建宏

        ​

2.进入VBA编辑界面,将以下代码拷贝-保存-关闭VBA界面

  1.  
    Sub addComment()
  2.  
     
  3.  
        ActiveSheet.Application.Sheets("Sheet1").Range("myTable1").Select
  4.  
     
  5.  
        ActiveCell.AddComment ("Hello")
  6.  
     
  7.  
        ActiveCell.Comment.Visible = True
  8.  
     
  9.  
    End Sub;

  ​

3.点击菜单栏-视图-宏-查看宏-点击刚才插入的宏名-执行

   结果如下

    ​

但是对于OA系统来说,很多业务都是需要用户在网页上直接操作的,如果让用户在客户端本地office操作完成再将文件上传至服务器,总会显得我们的系统做的不够智能。

那么需求来了:如何才能实现让用户傻瓜式操作在线打开office文档,并且让程序在打开文档之前做一些事(比如在某一区域设置值,为某一个单元格赋值,设置字体段落格式,添加批注)呢。当你毫无思路时那就证明这个需求用到了你没有涉及过的技术点,这个时候就需要找一些插件来实现了。

我当时发现了一款插件叫做pageoffice很轻松的解决了此需求。当时将他集成到我的系统中跑起来只用了半天的时间。并且后来测试发现他对服务器要求并不苛刻,支持Windows、Linux等主流服务器系统。并且在客户端支持火狐、谷歌、IE、360等主流浏览器。在他们官网http://www.zhuozhengsoft.com/index.html下载程序包后会提供免费的注册码(听说永久正式版也不过两三千,但是我没购买正式版他们官方的技术支持也一直对我提供支持并且没有不耐烦哈哈哈哈)。接下来我为大家展示一下我实现的新建批注的效果。

二、集成pageoffice在线打开文档实现为Excel中自定义名称的单元格添加批注

1.下载官网程序包,根据部署指引将pageoffice集成到自己项目中(具体流程不再赘述,官方指引很详细,实在不行可以去官网联系他们技术支持)

   下载地址
      http://www.zhuozhengsoft.com/dowm/
   部署步骤
      http://www.zhuozhengsoft.com/PageOffice/guide/

2.在需要打开文档的链接处通过pobrowser打开文档所在页面

<br><a href="javascript:POBrowser.openWindowModeless('excelcomment/excel.jsp','width=1200px;height=800px;')" style=" color:#0108f6; text-decoration:underline;">excelComment</a>

注意:这里的<head></head>中需要引入pageoffice官方提供的两个js文件

  1.  
    <script type="text/javascript" src="jquery.min.js"></script>
  2.  
     
  3.  
    <script type="text/javascript" src="pageoffice.js" id="po_js_main"></script>

3.excel.jsp中代码如下

  1.  
    <%@ page import="com.zhuozhengsoft.pageoffice.PageOfficeCtrl" %>
  2.  
     
  3.  
    <%@ page import="com.zhuozhengsoft.pageoffice.OpenModeType" %>
  4.  
     
  5.  
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  6.  
     
  7.  
    <%
  8.  
     
  9.  
        PageOfficeCtrl poctrl = new PageOfficeCtrl(request);
  10.  
     
  11.  
        poctrl.setServerPage(request.getContextPath()+"/poserver.zz");
  12.  
     
  13.  
        poctrl.setJsFunction_AfterDocumentOpened("afterOpen()");
  14.  
     
  15.  
        poctrl.webOpen("doc/test.xls",OpenModeType.xlsNormalEdit,"zs");
  16.  
     
  17.  
    %>
  18.  
     
  19.  
    <html>
  20.  
     
  21.  
    <head>
  22.  
     
  23.  
        <title>Title</title>
  24.  
     
  25.  
        <script type="text/javascript">
  26.  
     
  27.  
            function afterOpen() {
  28.  
     
  29.  
     
  30.  
     
  31.  
                var sMac = 'Sub addCom() \r\n '
  32.  
     
  33.  
                    + 'ActiveSheet.Application.Sheets("Sheet1").Range("myTable1").Select \r\n '
  34.  
     
  35.  
                    + 'ActiveCell.AddComment ("Hello")\r\n'
  36.  
     
  37.  
                    + 'ActiveCell.Comment.Visible = True\r\n'
  38.  
     
  39.  
                    + 'End Sub';
  40.  
     
  41.  
                document.getElementById("PageOfficeCtrl1").RunMacro("addCom", sMac);
  42.  
     
  43.  
     
  44.  
     
  45.  
            }
  46.  
     
  47.  
        </script>
  48.  
     
  49.  
    </head>
  50.  
     
  51.  
    <body>
  52.  
     
  53.  
    <%=poctrl.getHtmlCode("PageOfficeCtrl1")%>
  54.  
     
  55.  
    </body>
  56.  
     
  57.  
    </html>

这样就会通过poctrl.webopen方法打开doc/test.xls文档,并且为文档中名为myTable1的单元格插入批注"hello"

4.实现效果

    

三.除Java之外,pageoffice也对ASP.NET和PHP提供支持,相关程序员同学可以自行去官网了解,再此不再赘述.

 

如果此篇文章有侵权行为或存在错误之处请联系小编,定在第一时间改正

 

分享到:
评论

相关推荐

    excel把指定单元格内容根据公式引用为批注

    - **条件判断**:`If cel &lt;&gt; "" Then`确保只有非空单元格的内容被添加到批注中,避免产生不必要的空白行。 - **批注操作**:`If .Comment Is Nothing Then .AddComment Text:=s`,检查活动单元格是否已有批注;如果...

    批量添加Excel批注图片

    然而,当需要为大量单元格添加批注且批注中包含图片时,手动操作将变得极其耗时。为此,我们可以利用Visual Basic for Applications(VBA)编写宏来实现批量添加Excel批注图片的功能。VBA是Microsoft Office应用程序...

    excel如何使用vba清除批注.docx

    Excel中的VBA(Visual Basic for Applications)是一种强大的...熟练掌握VBA的使用,不仅可以清除批注,还可以实现更多自定义功能,提升Excel的使用体验。希望这篇文章对您在理解和应用Excel VBA清除批注方面有所帮助!

    sdpz.rar_Excel VBA

    描述中的“编写设定批注文字”意味着这个教程可能重点在于教用户如何使用VBA来添加、修改或删除Excel单元格中的批注。批注是Excel中的一种功能,可以用来在单元格旁边添加不占空间的注释。在VBA中,可以通过`Range...

    Excel-VBA实用技巧范例-获取单元格的基本信息.zip

    在Excel中,VBA(Visual Basic for Applications)是一种强大的宏语言,用于自动化和自定义Microsoft Office应用程序,尤其是Excel。通过VBA,用户可以编写代码来操控Excel的工作表、工作簿、单元格等对象,实现复杂...

    Excel-VBA宏编程实例源代码-提取批注.zip

    在Excel中,批注是一个功能,允许用户在单元格旁添加注释,这些注释在默认情况下不会显示在单元格内,而是以气泡形式出现。批注可以包含额外的信息,对数据进行解释或提供上下文。 要提取批注,VBA宏会遍历工作表上...

    我整理的VBA 自定义函数大全 共138页

    50.对多个用同一分隔符分隔的待查找元素,逐一在表区域首列内搜索,将返回选定单元格的值相加,相当于多个vlookup函数相加,对于查找不到的元素在批注中添加,以提醒用户。 51.根据个人所得税(工资)反算工资数 52....

    VBA常用技巧excel.doc

    VBA(Visual Basic for Applications)是Microsoft Office套件中用于自动化和自定义应用程序的强大工具,尤其在Excel中,VBA可以极大地提升工作效率。本篇文档详细介绍了VBA在处理Excel时的一些常用技巧。 1. **...

    Excel VBA实用技巧大全 附书源码

    04157为单元格添加批注、删除批注 04158修改单元格的批注 04159为单元格区域定义名称、删除名称(Name属性) 04160为单元格区域定义名称、删除名称(Add方法) 04161自动调整单元格大小 04162自动调整工作表全部...

    Excel批量插入批注图片操作说明

    这段代码的核心部分是`FillPic`子程序,它负责批量插入图片到指定的单元格批注中。 代码逻辑如下: 1. 定义变量,如`cell`用于遍历选定区域,`fd`用于文件对话框,`t`存储所选文件夹路径,`FilePath`存储图片文件的...

    COMMENT公式的使用.docx

    - 保存并关闭VBA编辑器,现在可以在Excel工作表中直接使用COMMENT函数,例如`=COMMENT("A1", "这是批注内容", TRUE)`,将为A1单元格添加批注“这是批注内容”,并始终显示批注框。 3. **函数解析** - 如果没有...

    完全手册Excel_VBA典型实例大全:通过368个例子掌握

    - **例069 隐藏/显示批注**:切换单元格批注的显示状态。 - **例070 删除批注**:删除单元格中的批注。 - **例071 复制单元格区域**:复制单元格区域及其内容。 - **例072 给单元格设置公式**:在单元格中设置特定的...

    VBA批量导入图片.rar

    这涉及到对工作表的遍历,获取每个目标单元格,并在该单元格上创建一个新的批注,然后将图片插入到批注中。这个过程需要对Excel对象模型有深入理解,包括工作表(Worksheets)、单元格(Cells)、批注(Comments)和...

    批注替代工具

    这个工具通过VBA(Visual Basic for Applications)编程实现,VBA是Microsoft Office套件中的内置脚本语言,允许用户自定义工作表的功能和行为。 批注替代工具的主要功能在于它的批处理能力。在日常工作中,我们...

    Excel百宝箱9.0无限制破解版.rar

    【批量导入图片到批注】:批量地将图片导入到批注中,可以自由设定图片显示大小 【删除所有图片】:删除当前表所有图片 【保存为图片】:将选区或者工作表中的图片导出成JPG文件或者PNG图片 【批量导出图片】:...

    VBA编程技巧大全

    14-2 为单元格添加批注 50 14-3 删除单元格中的批注 51 技巧15 合并单元格操作 52 15-1 判断单元格区域是否存在合并单元格 52 15-2 合并单元格时连接每个单元格的文本 53 15-3 合并内容相同的连续单元格 54 15-4 ...

    163种EXCEL使用技术

    - 这个需求较为复杂,Excel本身并不支持,可能需要借助VBA编程实现。 27. **在Excel中快速插入Word表格** - 在Word中复制表格,然后粘贴到Excel中。 28. **设置单元格字体** - 使用“字体”选项卡来调整字体...

    Excel使用技巧大全(超全).

    - 自定义单元格格式,如使用“;”分隔多个值。 17. **快速输入特殊符号** - 使用“插入”菜单中的“符号”功能。 18. **快速输入相同文本** - 使用填充柄快速复制单元格中的文本。 19. **快速给数字加上单位**...

Global site tag (gtag.js) - Google Analytics