Excel 编辑不同单元格时自动填充单元格中的序列

Excel 编辑不同单元格时自动填充单元格中的序列,excel,Excel,当我在第2列中输入任何数据时,我想在第1列中添加一个序列号(因此A1、B1、c1将是1、2、3)。因此,如果一个单元格没有值,则在另一个单元格中不会输入任何内容 最终结果应该是这样的 A- 1 32 B- 2 18 C- 3 16 E- 5 20 A-1 32 B-2 18 C-3 16 E-5 20 这是一个盒子计数和配置 我尝试了一些东西,但我失去了一个价值。有人能帮忙吗?也许这能帮上忙,就在A1单元格中使用以下公式: Excel 2007 =IF(LEN(B1)

当我在第2列中输入任何数据时,我想在第1列中添加一个序列号(因此A1、B1、c1将是1、2、3)。因此,如果一个单元格没有值,则在另一个单元格中不会输入任何内容

最终结果应该是这样的

A- 1 32 B- 2 18 C- 3 16 E- 5 20 A-1 32 B-2 18 C-3 16 E-5 20 这是一个盒子计数和配置


我尝试了一些东西,但我失去了一个价值。有人能帮忙吗?

也许这能帮上忙,就在A1单元格中使用以下公式:

Excel 2007

=IF(LEN(B1)>0;ROW(A1);"")
Excel 2010

=IF(LEN(B1)>0,第(A1)行,”)

然后用公式填充单元格。这将在找到任何内容时写入单元格行,在未找到任何内容时写入零:

1   test
2   test
3   test
0   
5   test
0   
7   test

也许这会有所帮助,只需在A1单元格中使用以下公式:

Excel 2007

=IF(LEN(B1)>0;ROW(A1);"")
Excel 2010

=IF(LEN(B1)>0,第(A1)行,”)

然后用公式填充单元格。这将在找到任何内容时写入单元格行,在未找到任何内容时写入零:

1   test
2   test
3   test
0   
5   test
0   
7   test

解决此问题的一种方法是利用
工作表\u Change
事件。这样,您不需要在电子表格中包含任何公式:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Application.Intersect(Target, Range("B:B")) Is Nothing Then
        End
    End If

    Target.Offset(0, -1) = WorksheetFunction.Max(Range("A:A")) + 1

End Sub

要实现此代码:

  • 在工作簿中,按ALT+F11(这将打开VBA编辑器)
  • 打开项目浏览器(CTRL+R)
  • 双击要应用代码的工作表,例如Sheet1
  • 在左侧下拉菜单中选择工作表,在右侧菜单中选择更改
  • 剪切并粘贴提供的代码

  • 希望这有帮助。

    解决此问题的一种方法是利用
    工作表\u Change
    事件。这样,您不需要在电子表格中包含任何公式:

    Private Sub Worksheet_Change(ByVal Target As Range)
    
        If Application.Intersect(Target, Range("B:B")) Is Nothing Then
            End
        End If
    
        Target.Offset(0, -1) = WorksheetFunction.Max(Range("A:A")) + 1
    
    End Sub
    

    要实现此代码:

  • 在工作簿中,按ALT+F11(这将打开VBA编辑器)
  • 打开项目浏览器(CTRL+R)
  • 双击要应用代码的工作表,例如Sheet1
  • 在左侧下拉菜单中选择工作表,在右侧菜单中选择更改
  • 剪切并粘贴提供的代码

  • 希望这有帮助。

    您是否正在为此寻找VBA解决方案?您好,p.campbell,VBA答案会有所帮助。我现在什么都看。这让我开始抽搐。你在寻找VBA解决方案吗?嗨,P.campbell,VBA的答案会有帮助。我现在什么都看。这让我开始抽搐。如果您将公式更改为
    =If(长度(B1)>0;行(A1);“”)
    (请注意空字符串/双引号),如果B1中没有任何内容,它将为空。更正,谢谢mskfisher!)我想你有英文版的excel,是吗?这里是我的excel正确执行公式的屏幕截图(不过是2007年的截图):其中“SI”表示“IF”,“LARGO”表示“LENGTH”,而“FILA”表示“ROW”,因为我有西班牙语version@oli206当前位置使其工作正常。对我有效的公式是:=如果(LEN(B1)>0,第(A1)行,“”)ops,当我说“length”时,我只是在猜测,我不记得在英文版本中只有“LEN”谢谢!)如果将公式更改为
    =If(长度(B1)>0;行(A1);“”)
    (请注意空字符串/双引号),如果B1中没有任何内容,则该公式将为空。更正,谢谢mskfisher!:)我想你有英文版的excel,是吗?这里是我的excel正确执行公式的屏幕截图(不过是2007年的截图):其中“SI”表示“IF”,“LARGO”表示“LENGTH”,而“FILA”表示“ROW”,因为我有西班牙语version@oli206当前位置使其工作正常。对我有效的公式是:=如果(LEN(B1)>0,第(A1)行,“”)ops,当我说“length”时,我只是在猜测,我不记得在英文版本中只有“LEN”谢谢!)