按钮与模块不同?

问题描述

a: 1: {s: 7: "picture"; s: 13: "Free Shipping";}

我已经添加了按钮中的所有代码来提供帮助。我不确定这是否会有所帮助,反正就是这样。如果用户选择半年,那么会发生一些事情。其余的“如果”也是如此,但我需要先解决这个问题,然后再处理其余的问题。代码太长,简单不复杂。

解决方法

现在发布了更多代码,我想我明白问题所在了。

无论您在何处引用 Cells(),VBA 都假定它适用于 ActiveSheet。而且我认为你应该完全限定调用是 Sheet2.Cells() 例如或任何你需要的。

当您调用按钮背后的代码时,该按钮驻留在工作表上并引用该工作表上的单元格。但是,当您将代码移至模块时,它不再引用带有按钮的工作表,而是引用当时处于活动状态的其他工作表。

因此,每当您看到前面没有工作表规范的 Cells()Range() 时,请对其进行更改,以便将其定位到特定的工作表。

附注。避免使用 Integer 而更喜欢 Long。此外,更喜欢相对引用,例如 Sheet2.Range("G2").Cells(i,j) 而不是绝对引用 Sheet2.Cells(1+i,6+j) 或字符串数​​学,例如 Sheet2.Range("G" & 1+i & ":G" & 5+i)