【发布时间】:2021-11-14 03:31:05
【问题描述】:
我有一个包含大约 6800 个行项目的 excel 文件,我已将图像/对象添加到每个行项目,并保存了文件。
此 excel 文件 (.xlsx) 现在大小为 17.2 MB, 我面临的问题是加载所有图像后,我无法使用该文件。请注意下面发生的一切。
- 文件大约需要 10 分 8 秒才能打开,
- 对于任何进一步的操作(保存、过滤、插入新行、删除旧行、选择文件中的所有对象),文件首先进入“无响应”模式,然后进入活动状态。 (这可能需要 10 分钟到 15 分钟之间的任何时间)
如何将所有图像添加到行中?
-
我使用图片查找来实现这一点,并使用以下索引和匹配函数来查找每一行的图片。
=INDEX(Sheet1!$B$2:$B$6800,MATCH(Sheet1!$A$2,Sheet2!$A$2:$A$6800,0)) -
我使用以下代码将图像和数据值复制到每个图像
Sub images() Dim rngSel As Range Dim rngHdr As Range Dim rngCell As Range Dim sht As Worksheet Dim myshape As Shape Application.ScreenUpdating = False If TypeOf Selection Is Range Then Set rngHdr = Selection.Cells(1, 1) Set sht = rngHdr.Parent ' find shape For Each myshape In ActiveSheet.Shapes If myshape.Type = msoAutoShape Or myshape.Type = msoPicture Then If Intersect(myshape.TopLeftCell, rngHdr) Is Nothing Then Else myshape.Copy Exit For End If End If Next myshape For Each rngCell In Selection.Cells If rngCell.Address <> rngHdr.Address Then sht.Paste rngCell End If Next rngCell End If Application.ScreenUpdating = True End Sub
需要帮助以使文件可用。
【问题讨论】:
-
Excel 不是那种让用户在几分钟内处理完全无响应的 UI 的程序。当它无论如何都发生时,你会尝试暂时禁用已安装的反恶意软件,看看是否有影响。
-
@HansPassant 错误是由于图片查找引起的,无法在文件本身中更正它,所以我不得不重建文件。感谢您的支持。
标签: excel performance delay lag