Excel VBA 设置单元格公式错误
这个把我难住了。当我为 ListObject 中的选定单元格设置公式时,如果 ListColumn 为空,Excel 会填充整个列的公式,而不仅仅是所选内容。我已将其复制到一个单独的工作簿中。
- 创建一个表格
- 插入大约五行单击
- (选择)列中的一个单元格
执行以下代码:
子集CellFormula() Selection.Formula = "=myFormula()" 结束子
函数 myFormula() 作为整数 我的公式 = 1 End Function
请注意,整列都填充了数字一
- 删除单元格中的数据
- 在任意单元格中输入任意值
- 选择除以下以外的单元格包含值的单元格
- 重新执行步骤 4
- 请注意,只有选定的单元格填充了数字 1
This one has me stumped. When I set the formula for a selected cell in a ListObject, if the ListColumn is empty, Excel fills the formula for the whole column, rather than just the Selection. I have duplicated this in a separate workbook.
- Create a Table
- Insert a five or so rows
- Click on (select) one of the cells in the column
Execute the following code:
Sub setCellFormula()
Selection.Formula = "=myFormula()"
End SubFunction myFormula() As Integer
myFormula = 1
End FunctionNote that the whole column is filled with the numeral one
- Delete the data in the cells
- Enter any value in any of the cells
- Select a cell other than the cell with a value in it
- Re-execute step 4
- Note that only the selected cell is filled with the numeral one
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的经验是,无论 VBA 如何,表的行为都如您在 XL 2007 中所描述的那样,列表的行为如您在 XL 2003 中所希望的那样。但是,在 2007 中,您可以告诉它“停止创建计算列”。所以我猜这不是代码问题,而是由于版本之间的不同行为或 XL 2007 的两个实例的不同设置而导致的问题。
My experience is that, regardless of VBA, Tables behave as you have described in XL 2007, and Lists behave as you'd prefer in XL 2003. However in 2007 you can tell it to "stop creating calculated columns." So I'd guess it's not a code issue, but an issue due to different behavior between versions, or different settings for two instances of XL 2007.