【发布时间】:2020-02-23 23:01:25
【问题描述】:
花了几个小时寻找任何提及这一点,但没有运气。也许这里有人知道答案。我在excel中开发了一个大型应用程序。 sheet1 接收来自 Com 服务器的数据,该数据只是放置在那里。这已经工作了很长时间,没有任何问题。 我有两个表 1 和公式的链接。大多数情况下,我在 sheet1 更改事件中进行所有处理,因为在将函数放入单元格时我得到了循环引用。 从昨天开始,我有一个问题,表 2 中的单元格显示 0。当我转到链接的单元格时,它有数据。有时是数字,有时是文字,但第 2 页显示 0。
除了链接的单元格之外,我还通过单独的过程筛选了一些数据并将其放置在表 3 以链接到其他单元格,因此表 2 也将包含来自此数据的链接。我今天花了很多时间更改它,以便将数据直接放在 sheet1 中,而不是创建链接。这很乏味,并且会导致其他问题。 我检查了选项-> 公式。现在它设置为最大迭代次数 100;最大更改 100。我减少了最大迭代次数,以阻止某些函数通过工作表更改事件递归地触发自己。现在我把它提高到100。 我删除了保存工作表的所有数据,再次开始,同样的事情再次发生。 例如sheet1 单元格“A1”的值为 10 sheet2 单元格 a1 的公式为 ='sheet1'!A1 工作表 2 单元格 A1 显示 0 当我查看公式栏时,我看到了公式
此数据已损坏到第 42 行,即保存数据的最后一行。下面的条件格式是正确的颜色,即使公式看起来相同,我看不出有什么错误来解释它,我再次将公式从 44 向上拖动,一切正常,但奇怪的是,当我从 sheet1 单元格 1 复制到 44 和重新粘贴一个链接,我仍然得到0。 当我运行系统并且 COM 服务器提供负载并且触发更改事件等时,我最终会遇到同样的问题。
现在,当我添加一个新工作表并将来自 sheet1 的链接粘贴到此工作表时,它可以正常工作。 现在在我尝试修复它之后。所有 sheet1 和 sheet2 列的格式都是通用的,尽管之前我有一个列文本和其他一些数字。我无法控制 sheet1 的格式,因为无论我做什么,excel 都会适应它接收到的数据。 我还不断检查 application.enableevents 这不是问题,工作表也不是计算,在选项中我设置了自动计算 在工作表 2 中的工作表更改下运行的唯一其他例程是 tidyup,它在 COM 服务器交付较少数量的行后清除旧数据。 它从工作表中未使用的单元格复制默认数据。我根据需要放置了正确的格式和默认值,例如空白或 0。这在过去没有引起任何问题,我看不出它可能会做什么,尽管之前我只是尝试在要清除的单元格中放置“”,这确实导致了令人讨厌的 excel 错误。但不是现在。
有人有什么想法吗?
【问题讨论】:
-
我们无法在不知道确切您在做什么的情况下提出严肃的建议。如果您有代码,那么发布它的相关部分总是有帮助的。既然您提到工作表已“损坏”,那么一个好的开始就是将其全部复制到一张新工作表上,看看是否能解决问题。
-
谢谢蒂姆。 Theresa 有很多代码要粘贴。我看不出如果不指明从哪里开始,它会有所帮助。
-
当我说损坏时,我的意思是显示 0 而不是正确的数据。我收到了一些可疑的东西,但不知道如何追踪它。在特意运行了几次更改事件进行调试后,我注意到我的任务栏上方正常有两个 mii 屏幕。一个用于工作簿,一个用于 VBA IDE,但现在它们由两个不响应单击的灰色迷你屏幕连接。我怀疑它在工作表的某个地方创建了一个链接,指向之前从一次崩溃中修复/恢复的薄薄。也许我的链接真的指向这个应用程序的外壳?
-
1.如果您不提供一些努力证明(代码片段),我们不会为您提供帮助。 2. 你的文字描述太长了,不值得一读。 3.我认为你的问题是数据类型性质,确保你不检查例如数字与文本。
-
4.如果这是一个更改事件,您究竟如何调试它?我建议您转移 Change 事件的子端,例如,
Sub ertdfgcvb(Target As Range)。然后您的更改事件将使用Call ertdfgcvb, Target,您最终可以使用Sub dfg() Call ertdfgcvb, Range("A1")进行调试。祝你好运!