如何根据相邻的单元格值创build跳过空白单元格的数字序列

我有一个VBA的问题,似乎无法find一个解决scheme。 所以这里…

我需要在列A中创build一个数字序列,根据它旁边的单元格(列B中)是否有数字。 如果B列中的单元格为空白,则A列中的单元格应该继续该序列。 B列中的数字是手动input的。

现在我正在使用一个公式(在这个例子中,公式在A2中):

= IF(B2,“”,(ROW() – 1))

这很好地得到一个序列,如果相邻的单元格中包含一个值,则将该单元格留空,但由于它是基于行号的,因此它不会给我所需要的,因为它只会给出行号-1 。

我已经开始研究VBA解决scheme,到目前为止,我已经是这样了:

Sub AutoNumText() lastRw = Range("B" & Rows.Count).End(xlUp).Row For nxtRw = 1 To lastRw If Range("B" & nxtRw) <> "" Then myNum = myNum + 1 Range("A" & nxtRw) = myNum Application.WorksheetFunction.Text(myNum) End If Next End Sub 

这也不起作用,而且我接下来可以尝试一下我有点不知所措。 有什么build议么?

编辑

以下是数据应该是什么样子的例子:

 AB

 1   
     1
 2   
     2
     2
 3   

一个公式:

 =IF(AND(ROW() = 1,B1=""),1,IF(B1="",MAX($A$1:INDEX($A:$A,ROW()-1))+1,"")) 

在这里输入图像说明

A1中input:

 =IF(B1="","",1) 

A2中input:

 =IF(B2="","",1+MAX($A$1:A1)) 

并抄下来:

在这里输入图像说明

这可能是你想要的:

 Sub AutoNumText() lastRw = Range("B" & Rows.Count).End(xlUp).Row For nxtRw = 1 To lastRw If Range("B" & nxtRw) = "" Then myNum = myNum + 1 Range("A" & nxtRw) = myNum End If Next End Sub