我已将包含文本流动的单元格链接到原始单元格中的空相邻单元格。
在目标表中,空单元格显示 0,并且流动的文本消失。
抑制 Excel 选项中的 0 并不能解决问题,看来目标单元格中的链接本身会停止换行。
查看文本的唯一方法是删除链接,但如果我更改原始文本,它就不会更新。
如果原始相邻单元格为空(即链接值返回 0),是否有人知道强制目标单元格流动的解决方法?
或者(第二选择)强制选定的目标单元格流动,而不考虑相邻单元格的内容?
答案1
我认为@fixer1234 描述得正确,
文本仅流入空的细胞。空的不是包括 0、空白,或者包含导致空白、零、“”或其他结果的公式。
所以唯一的选择就是消除您希望它流到的那些单元格中的公式(和其他任何内容)。(这可能对您没有帮助......但这就是限制)
答案2
我非常同意另一个答案——这不是 Excel 本身能做的事情。不过,我确实有几点建议:
一、花哨的工作表函数
在目标表上,
- 放入
=IF(A1<>"", LEFT(A1,5), "")
第一个单元格, - 放入
=IF(B1<>"", LEFT(B1,5), MID(A1,6,5))
第二个单元格, - 放入
=IF(C1<>"", LEFT(C1,5), IF(B1<>"", MID(B1,6,5), MID(A1,11,5)))
第三个单元格, - ETC。
用对源表的引用替换A1
、B1
、C1
等。也就是说,您将“手动”处理文本溢出。除非您使用等宽字体(如 Courier 或 Consolas),并将所选字体的列宽调整为 5 个字符宽(或调整 5 以匹配列宽),否则这看起来会很丑陋。如果您希望列宽不同,这会变得更加复杂。
如果希望文本在溢出时换行,则可以使用以下方法很多更复杂。
二、VBA
任何一个:
- 放弃使用 Excel 将一个单元格链接到其他单元格的功能的想法。定义一个 VBA 子程序以将源工作表复制到目标工作表。
- 编写一个 VBA 子程序来执行另一个答案所建议的操作 — 对于目标工作表中的每个单元格,查看源工作表中的相应单元格。如果源单元格为空,则将相应的目标单元格设置为空。如果源单元格不为空,则将相应的目标单元格设置为对源单元格的引用。
您可能希望每次更改源表时都运行其中之一;或者您可以按需执行。您应该考虑如何处理计算结果为空字符串但不为空的源单元格;例如,它们包含=""
或类似的东西=IF(Q42>=100, "red hot", "")
。
我的个人观点:选项2更好。
PS 你可能想看看 在 Excel 中引用空白单元格时显示空白,如果你还没有看过的话。据我所知,它并没有直接回答你的问题,但它对相关主题的讨论可能对你有用。