Excel VBA的新手,并一直在进行练习以使用用户表单创建采购订单表。
尝试基于几个变量清除行时遇到问题。
我有一个按钮,用下面的代码清除刚刚添加到工作表的行:
Private Sub RemovePrevious_Click()
'Removes last line of PO
If LineItemTotal > 1 Then
Rows(LineItemTotal + POrowstart - 1).SpecialCells(xlCellTypeConstants).ClearContents
End If
End Sub
LineItemTotal是工作表上的范围,随着添加新行而增加。它在用户表单的开头用POrowstart公开声明:
Private LineItemTotal As Integer Private POrowstart As Integer
然后将它们分配到另一个子目录中:
LineItemTotal = Range("LineItemTotal") POrowstart = 10
问题是,使用按钮运行removeprevious子菜单时,数学没有加起来。例如,当LineItemTotal为3时,它应该删除第12行(正确的行),但它删除第11行。如果再次按下它(LineItemTotal现在为2,则应该删除11),它将引发错误“没有单元格被发现”,就好像要删除11一样,但是它已经错误地清除了此内容。
我在代码中有SpecialCells,因为我想保留行中的公式。
谢谢您的帮助。
Excel VBA的新手,并一直在进行练习以使用用户表单创建采购订单表。尝试根据几个变量清除行时遇到问题。我...
仔细检查变量,因为它们是在模块级别声明的,因此它们的值可能与您期望的值不同。一般来说,最好避免使用模块级别的变量,并在VBA提供的最低级别(ROutine级别)上声明它们。如果需要将值传递给另一个例程,请给该例程参数并将值作为参数传递。