使用 Excel 宏组织销售数据

使用 Excel 宏组织销售数据

我正在 Excel 中编写一个宏函数来组织一组月度销售数据。原始格式​​每个条目使用 6 行,而组织后的表格仅使用 1 行。销售数量每个月都在变化,所以我需要想办法确定有多少销售条目,这样我才知道要将公式扩展至何种程度。

原始数据的末尾总是会出现第二列的单词“SIGNED:”,因此我使用间接和匹配函数来确定公式的填充程度。我使用的代码如下所示:

    Application.Goto Reference:= _
         "INDIRECT(""T"" & (MATCH(""SIGNED:"",RawData!C2:C2,0)-3)/6+1)"
    Range("T2", Selection).Select
    Selection.FillDown

一开始效果很好,但有时原始数据显然不会使用 6 行,因为有时带有上述输入的匹配函数不会返回整数。因此,我尝试在匹配函数周围使用上限函数来确保我得到一个整数,并且认为即使它偏离一两个也没关系,因为这很容易手动处理。我写的内容如下:

    Application.Goto Reference:= _
        "INDIRECT(""T"" & Ceiling((MATCH(""SIGNED:"",RawData!C[-20],0)-3)/6+1),1))"
    Range("A2", Selection).Select
    Selection.FillDown

现在我收到错误,但我不知道为什么。这是否与 ceiling 函数返回的数字格式有关?如果您能提供解决方案,或者提供查找销售条目数量的不同方法,我将不胜感激。

谢谢!

答案1

我会以不同的方式处理这个问题。下面的代码片段使用范围的 .Find 属性来确定工作表中的最后一个数据单元格。.Find 返回一个单元格引用,我们可以使用 .Row 属性获取其行。

还要注意,没有必要选择范围来对其采取行动。

Dim lastcell As Range
Set lastcell = Cells.Find(What:="*", After:=[A1], _
    SearchDirection:=xlPrevious)
Range("A2:A" & lastcell.Row).FillDown

相关内容