ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2337|回复: 5

[讨论] 刚发现IMAGE控件的新问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-12-20 18:24 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我做了一个员工信息数据库,在personal表中使用了image控件从文件夹pic中读取照片(只是在查阅个人信息的时候显示一次,控件只有一个),本意是想减少数据库的体积。
实现代码如下:
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.   Dim str As String  
  3.   StrPath = ThisWorkbook.Path
  4.   If VBA.Left$(StrPath, 1) <> "" Then StrPath = StrPath & ""
  5.   StrPath = StrPath & "pic"
  6.   
  7.   With Sheets("personal")
  8.     If Target.Column = 3 Then
  9.     Image1.Picture = LoadPicture()
  10.     str = .Range("c6").Value
  11.     str = StrPath & str & ".jpg"
  12.     On Error Resume Next
  13.     Image1.Picture = LoadPicture(str)
  14.     '.Range("B24") = str
  15.     End If
  16.   End With
  17. End Sub

复制代码
但产生了两个新的问题(都比较严重):

一是excel体积随着读取文件次数的增加不断地膨胀,晕呀 本来想从文件夹读取照片就是想减少体积的,这下可好啦,与时俱增啦。。。

二、当照片大于图片框时,只能显示照片的一部分。


在线等候有老师再度指点我。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-12-20 19:03 | 显示全部楼层
我想这可能符合MICROSOFT一贯风格,时间与垃圾同步

是不是将临时文件信息写入了文档(我都是在保存后发现体积巨增的)?

盼高人教我一个清除无用的隐藏垃圾信息数据的VBA代码

TA的精华主题

TA的得分主题

发表于 2008-12-22 15:51 | 显示全部楼层
改成这样,试了十余张图片,没有发现体积问题。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
  Dim str As String
  StrPath = ThisWorkbook.Path
  If VBA.Left$(StrPath, 1) <> "\" Then StrPath = StrPath & "\"
  StrPath = StrPath & "pic\"
  
  With Sheets("personal")
    If Target.Column = 3 Then
    Image1.Picture = LoadPicture("")
    str = .Range("c6").Value
    str = StrPath & str & ".jpg"
    Image1.Picture = LoadPicture(str)
    '.Range("B24") = str
    End If
  End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-12-22 19:57 | 显示全部楼层
谢谢 你的代码比我的更规范 

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-12-22 20:07 | 显示全部楼层
我用了个笨办法,将工作薄设为只读 
将数据源与数据表现两分离

现在体积不再增加


但是又出现了新的问题:当数据源文件没有打开时,数据表现文件中读不出数据,所以我还想请教一个问题--
如何用一个打开的工作薄读取另一个没有打开的工作薄内的数据???

等待高手解答。。。

谢谢所有帮助我的人

TA的精华主题

TA的得分主题

发表于 2014-11-13 11:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lthnds 发表于 2008-12-22 20:07
我用了个笨办法,将工作薄设为只读 
将数据源与数据表现两分离

但是又出现了新的问题:当数据源文件没有打开时,数据表现文件中读不出数据,所以我还想请教一个问题--
如何用一个打开的工作薄读取另一个没有打开的工作薄内的数据???
---------------------------------------------------------------------------------------------------------------------------------------------------
我是将两个工作簿放在同一个文件夹下,只打开数据表,可以正常读取数据源文件。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-26 21:23 , Processed in 0.048096 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表