【发布时间】:2017-07-11 22:21:17
【问题描述】:
非常简单。单元格 A1 中有一个图像,我通过 Insert:Picture:From File... 提供它。
现在我想让 Cell A3 自动显示同一张图片。我根本找不到办法——当然“=”是行不通的。在这一点上,我不在乎图像是“链接”还是嵌入的,我只想让它工作。它可以?谢谢。
编辑,09-01-17,根据 Jim K 的想法,这是我安装的宏代码:
REM ***** BASIC *****
Private oListener as Object
Private cellA1 as Object
Sub AddListener
Dim Doc, Sheet, Cell as Object
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet1")
cellA1 = Sheet.getCellrangeByName("A1")
'create a listener
oListener = createUnoListener("Modify_","com.sun.star.util.XModifyListener")
'register the listener
cellA1.addModifyListener(oListener)
End Sub
Sub Modify_disposing(oEv)
End Sub
Sub RmvListener
cellA1.removeModifyListener(oListener)
End Sub
' macro jumps here when oListener detects modification of Sheet
Sub Modify_modified(oEv)
Doc = ThisComponent
Sheet = Doc.Sheets.getByIndex(0)
originCell = Sheet.getCellByPosition(0,0)
originValue = originCell.Value
if originValue then
print "originValue is " & originValue
else
print "originValue zero"
end if
End Sub
具有讽刺意味的是,问题在于它有效。它适用于整数和{非值},我的意思是一个空单元格。
所以任何不为零的整数都打印 TRUE,零打印 FALSE,空单元格打印 FALSE。
但这就是它停止工作的地方——任何类型的字符串“asdf”也返回 FALSE。
也许这可以解决,但更糟糕的是:当我将图像粘贴到单元格中,或使用“插入/图像/来自文件...”菜单,或剪切现有图像时...什么也没有发生! Sheet Modified 业务未触发预期的例程。
有希望吗?谢谢。
【问题讨论】:
-
一种方法是编写一个复制和粘贴图像的宏。它可以设置为在“内容已更改”工作表事件上运行。如果您想尝试这种方法并遇到困难,请编辑问题以发布您到目前为止的代码,并说明遇到的问题。
-
好的,谢谢,我会试试然后回来。
-
主帖已更新...(我认为这不会触发任何触发器?)
-
似乎最有效的方法是编辑帖子并添加简短评论,以便人们知道它已被更改。
标签: openoffice-calc