使用vba查找excel中拖动行数的计数

时间:2014-07-16 11:14:31

标签: excel vba excel-vba

我正在编写VBA代码,用于在excel中为一列应用循环功能。

在这里,我使用以下代码成功地舍入一列。

 If Target.Column = 18 Then 
  If Target.Value = 0 Then
   Target.Value = ""
    Else
      Target.Value = Round(Target.Value, 0)  
   End If

它正在为一个圆柱完美地工作。

例如:255.50至256。

但是我的问题每当我输入255.50并拖动255.50到达范围假设为4个单元格。这里我能够对特定目标单元格应用舍入,而不是对所有拖动的单元格范围进行舍入。

为此,我想在工作表中找到拖动的单元格范围,并希望对所有拖动的列也应用舍入。

请给我任何建议。

我正在打印我的实际输出和我想要的输出,请参考这些。

实际输出:

256

255.5

255.5

255.5

255.5

255.5

期望输出:

256

256

256

256

256

256

请帮帮我..

2 个答案:

答案 0 :(得分:0)

将您的实际数字放在A列中,如下所示

Cell A1= 256
Cell A2=255.5
Cell A3=255.5
Cell A4=255.5
Cell A5=255.5
Cell A6=255.5

并将以下公式放在单元格B1

=ROUND(A1,0)

并将单元格B1拖到B6。

答案 1 :(得分:0)

您可以使用数字格式来实现所需的舍入,而不是将值四舍五入,从而丢失原始输入数字。

假设Target在上面的代码中是Range对象,而不是调用Round(),您可以这样做:

Target.NumberFormat = "0" ' Round to no decimal digits

这样,单元格中的显示数字按预期显示为圆形,但原始数字仍保留在单元格中。因此,如果将来您决定舍入到一个十进制数,您可以按如下方式更改格式:

Target.NumberFormat = "0.0" ' Round to 1 decimal digit

并且它应该仍然可以正常工作,因为原始数字仍然存在 - 您只是以不同方式格式化/显示它。