Excel 在查看ColA值的同时向ColB添加1

Excel 在查看ColA值的同时向ColB添加1,excel,vba,Excel,Vba,在查看ColA值时,我一直尝试在ColB中循环一个范围来添加1,我想从高到低添加1,其中0将为空 谢谢你的帮助 我的努力 Dim lastRow As Integer lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row If Sheet1.Range("A2" & lastRow).Value > 0 Then Range("B2" & lastRow).Va

在查看
ColA
值时,我一直尝试在
ColB
中循环一个范围来添加
1
,我想从高到低添加1,其中0将为空

谢谢你的帮助

我的努力

Dim lastRow As Integer
lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
    If Sheet1.Range("A2" & lastRow).Value > 0 Then
        Range("B2" & lastRow).Value = 1
        ElseIf Sheet1.Range("A2").Value = 0 Then
        Range("B2" & lastRow).Value = ""
    End If
第二次尝试

Dim lastRow As Integer
lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
Dim c As Range
For Each c In Range("A2:A50")
    If c.Value > 0 Then
      Sheet1.Range("B2" & lastRow).Value = 1
    End If
Next c
像这样

如果另一列中的值不等于0,则写入列
  • 请注意,两种解决方案的作用相同
  • 对于阵列版本,假定该范围至少有两个单元格(
    A2:A3
    )。如果
    A2:A2
    ,它将失败
选项显式
子slogrange()
最后一排一样长
LastRow=Sheet1.单元格(Sheet1.Rows.Count,1).结束(xlUp).行
尺寸rg作为范围:设置rg=图纸1。范围(“A2:A”和最后一行)
调光范围
对于rg.单元格中的每个c
如果c.值为0,则
c、 偏移量(,1)。值=1
”“否则呢
'c.偏移量(,1).值=空
如果结束
下一个c
端接头
子快速数组()
最后一排一样长
LastRow=Sheet1.单元格(Sheet1.Rows.Count,1).结束(xlUp).行
尺寸rg作为范围:设置rg=图纸1。范围(“A2:A”和最后一行)
尺寸数据作为变量:数据=rg.值
变暗,变长
对于r=1到uBond(数据,1)
如果数据(r,1)为0,则
数据(r,1)=1
其他的
数据(r,1)=空
如果结束
下一个r
rg.偏移量(,1).值=数据
端接头

屏幕截图是否显示了所需的结果?是。我想把1从高到低加上@VBASIC208I不明白从高到低是什么意思?你能用一个实际的例子吗?我的意思是,第一个1将被添加到最高值,然后添加到第二个最高值,然后再添加到第三个最高值,依此类推,最后一个1将被添加到最低值@VBASIC208。对于最终结果,顺序无关紧要。所以我还是不明白。我会发布一些东西。试试看,解释一下它有什么问题。