Row Function Maths ClearContents

问题描述 投票:0回答:1

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的新手,并一直在进行练习以使用用户表单创建采购订单表。尝试根据几个变量清除行时遇到问题。我...

excel vba userform
1个回答
0
投票

仔细检查变量,因为它们是在模块级别声明的,因此它们的值可能与您期望的值不同。一般来说,最好避免使用模块级别的变量,并在VBA提供的最低级别(ROutine级别)上声明它们。如果需要将值传递给另一个例程,请给该例程参数并将值作为参数传递。

© www.soinside.com 2019 - 2024. All rights reserved.