Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • 金额转换的代码
  • Excel如何计算表达式
  • 如何用ado操作Excel
  • Excel中如何编程判断字..
  • 【技巧】excel文件破解..
  • 创建自己的EXCEL函数

最新文章

  • Excel VBA编辑语句..
  • 【技巧】excel文件破解..
  • 【Excel VBA】Fi..
  • 实用的GET函数
  • 日期改为显示星期几的自定义..
  • VBA在Excel 200..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > Excel技巧 > Excel开发编程
Excel开发编程

Excel XP中图片的智能刷新

在Excel工作表中,通过VBA可以很容易地实现当某些单元格内容发生变更时,相关图片也进行同步变更的效果。但实际工作中,VBA程序的运行常常会受到各种原因限制而不能达到预期目的,况且并不是人人都能熟练运用VBA。那么,如果不借助于VBA的话,是否就不可能办到呢?

   我们来看这样一个实例:这是一个利用Excel制作的“万年历”,功能是查询任一年的公历、农历、节气、节日、生肖等。在使用过程中,当使用者指定查询日期为1月份时,它能够显示1月份的日历,并配有当前月份插图及当前年份生肖图,如图(1)所示。当查询日期为2月份时,它显示2月份的日历并自动刷新月历插图,同时,由于正好跨了一个阴历年,工作表还一并刷新了生肖图片,由“蛇”变为“马”如图(2)所示。

   图(1)

    access数据库

   图(2)

    access数据库

   这个“万年历”的制作过程没有使用任何VBA程序,那么,它是如何实现动态刷新图片这一神奇的效果的呢?

   自从Excel 5.0 开始,Excel在原有“窗体”控件之外新增了 ActiveX 控件。实际使用中,当我们往工作表中添加某个ActiveX 控件时,比如 “CommandButton” 控件,很少人会在意“编辑栏”发生的变化,如下图:(如果您的工作表视图中没有“控件工具箱”,请右击工具栏,选择“控件工具箱”)

    access数据库

   (图三)

   在工作表中新建一个按钮控件以后,“编辑栏”中显示为“=EMBED("Forms.CommandButton.1","")”,这是该嵌入对象的表达式。这个表达式就是关键所在。如果我们在A1单元格里存入一张图片,再将表达式改写为“=A1”会怎样呢?结果这个CommandButton控件获得了“A1”单元格的“视”(视:即view,其定义为用户和文档之间可资完成全部输入、选择及文档编辑的中介物。文档管理着数据,但由视来显示它的部分或全部并反馈信息。此处“视”作类比)。如下图所示:

   (图四)

    access数据库

   由此我们可以知道,假如预先向某些单元格中存入图片,那么,当我们改变这个CommandButton控件所指向的单元格地址后,就能使之“看”到不同的被指向单元格所显示的内容。这样,就可以有规则地实现图片内容的“刷新”了。

   掌握了上面这个技术特点以后,我们只需要实现能动态变更目标单元格地址即可。下面仍以“万年历”来举例说明该方案的具体实现方法。在这个例子里,我们要实现的是当月份发生变更时,显示不同的月历插图。

   设计好“万年历”工作表后,将一空白工作表命名为“月历图”,在该工作表的A1-A12单元格中分别预置12张图片,图片预先调整为实际要显示的大小,并取消网格线(网格线也是该单元格“视”的一部分,如果需要显示的话可以一并保留),以备12个月份使用,如下图所示:(图五)

    access数据库

    然后回到工作表“万年历”,将用于输入查询月份的单元格命名为“月份”,该单元格中的数值将作为指向工作表“月历图”中不同图片的指针。命名的目的是为了增加函数的可读性。在工作表“万年历”中插入一CommandButton控件,将其表达式写为“=月历插图”,虽然当前的变量“月历插图”尚未定义,不过没关系,这可以通过插入名称来进行内部定义:点击“插入->名称->定义”,这时弹出“定义名称对话框”,在“在当前工作薄中的名称”中键入“月历插图”,令“引用位置 =OFFSET(月历图!$A$1,月份-1,0)”,点击“添加”“关闭”完成操作。

   这里用到了OFFSET() 函数,该函数的语法简述如下:

   OFFSET(起始单元格,下偏移行数,右偏移列数),起始单元格自身偏移量为零,偏移数值为负数时则向相反方向移动。

   文中公式“=OFFSET(月历图!$A$1,月份-1,0)”的意思是告诉CommandButton控件,从工作表“月历图”的A1单元格开始,根据不同的月份向下移动月份-1个单元格,并将该单元格的内容显示出来。上述操作完成后,其结果显示如下:(图六)

    access数据库

   随着“月份”的变更,这个CommandButton控件将指向不同的图片,这也就完成了Excel 工作表中图片的智能刷新。

   上述方法对于利用Excel工作表来处理配有图片的人事档案、产品及零备件库存等资料,可以实现同步调用相关图片并显示于指定位置,达到图文并茂的效果。其它方面的应用,读者可以自行发挥。

   (编者注:示范文“万年历”,可到Excel Home(http://www.excelhome.net下载使用及参考)

 

"images/win0201/image014.jpg" v:shapes="_x0000_i1027">

   (图三)

   在工作表中新建一个按钮控件以后,“编辑栏”中显示为“=EMBED("Forms.CommandButton.1","")”,这是该嵌入对象的表达式。这个表达式就是关键所在。如果我们在A1单元格里存入一张图片,再将表达式改写为“=A1”会怎样呢?结果这个CommandButton控件获得了“A1”单元格的“视”(视:即view,其定义为用户和文档之间可资完成全部输入、选择及文档编辑的中介物。文档管理着数据,但由视来显示它的部分或全部并反馈信息。此处“视”作类比)。如下图所示:

   (图四)

    access数据库

   由此我们可以知道,假如预先向某些单元格中存入图片,那么,当我们改变这个CommandButton控件所指向的单元格地址后,就能使之“看”到不同的被指向单元格所显示的内容。这样,就可以有规则地实现图片内容的“刷新”了。

   掌握了上面这个技术特点以后,我们只需要实现能动态变更目标单元格地址即可。下面仍以“万年历”来举例说明该方案的具体实现方法。在这个例子里,我们要实现的是当月份发生变更时,显示不同的月历插图。

   设计好“万年历”工作表后,将一空白工作表命名为“月历图”,在该工作表的A1-A12单元格中分别预置12张图片,图片预先调整为实际要显示的大小,并取消网格线(网格线也是该单元格“视”的一部分,如果需要显示的话可以一并保留),以备12个月份使用,如下图所示:(图五)

   

发布人:Rowen-Excel Home  
分享到:
点击次数:  更新时间:2005-02-11 09:41:09  【打印此页】  【关闭】
上一条:Excel中 BASIC 程序的运行  下一条:Excel成绩分析处理程序



相关文章

  • • Excel VBA编辑语句集300条
  • • 【技巧】excel文件破解密码
  • • 【Excel VBA】FileDialog 用法之 打开对话框获得文件夹路径
  • • 实用的GET函数
  • • 日期改为显示星期几的自定义涵数
  • • VBA在Excel 2000中的应用一例
  • • ActiveX在Excel中的运用
  • • 检查重复字段值的方法

热门文章

  • [2005-02-04] 如何用Excel读取,修改,删除access数据access数据库
  • [2005-02-11] 检查重复字段值的方法access数据库
  • [2005-02-11] ActiveX在Excel中的运用access数据库
  • [2005-02-04] 如何获取 EXCEL 的一些环境路径access数据库
  • [2005-03-05] VBA在Excel 2000中的应用一例access数据库
  • [2005-02-11] 创建自己的EXCEL函数access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn