根据另一列的值动态自动填充Excel列中的编号

时间:2018-01-10 20:57:49

标签: excel excel-vba excel-formula vba

首先,让我试着解释一下我想要完成什么(以免任何人有更好的建议)。

我有一组数据,每个月会有任意数量的行和值。如果没有具体的能力,我会提出一个一般的例子:假设这些人正在寻找工作,所以数据每个月都会改变。在这个数据集中,我有一个标志,表明他们是否对我正在招聘的特定工作“感兴趣”(再次,这是一个假的例子,所以我确信有工具实际上这样做,放手去做)。我只被允许占整个申请人的一定比例,我只想从“有兴趣”的政党那里获得这个百分比,但“感兴趣的”政党的数量大于这个百分比。假设我的总人数是100000,感兴趣的人数是7000,但我只占总人口的2%。

所以,我创建了一个细胞,它给了我2%的含义。我想我会尝试仅在“感兴趣”标志为“是”(所有其他行将为0或N / A)的行上自动填充行号,并且当自动填充变为与我的固定单元格相同的数字给出我的2%(2000),然后它停止填充数字(或使它们为0或N / A - 无论如何)。然后我可以按该列过滤。

我可以做VBA或公式或任何你能想到的,我只是不知道如何做到这一点。

作为参考,本文似乎非常接近,但没有对另一列中的值的指定引用:VBA to Auto Fill Specific Number of Rows

1 个答案:

答案 0 :(得分:0)

这是未经测试的,但可能有所帮助。

Dim RwNum As Integer
Dim lCol As Integer

lCol = Worksheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft)

RwNum = Range("Ref Cell") 'the cell that gives you the 2%

Sheets("Sheet1").Range("A1").AutoFilter Field:=x, Criteria1:="Yes", Operator:=xlFilterValues 'Field "x" is the "Yes" column

Sheets("Sheet1").Range(Cells(1, 1), Cells(RwNum, lCol)).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Sheetx").Range("A1") 'sheetx would be a blank worksheet; this will give you a listing of the 2%.