如果 Excel 中的字段为空,则生成"NL-1, NL-2..."。Nl-n' 在按钮单击时自动



我正在尝试在 excel 中构建一个按钮,以便在单击它时生成'NL-1、NL-2、.....NL-n' 直到 Excel 中行的末尾。

例如

Sample No    Value       
123           1
245           2
3
345           4
678           5
345           6
7
8
347           9
678          10
343          11
12
098          13

点击按钮时

Sample No    Value       
123           1
245           2
NL-1          3
345           4
678           5
345           6
NL-2          7
NL-3          8
347           9
678          10
343          11
NL-4         12
098          13

我能够使用第三个引用列和 IF 语句构建逻辑 即 IF(A$2=",C$2(,其中 C 是 "NL-1......NL-99",它给了我这样的解决方案

Sample No    Value     NL(Hidden)  
123           1          NL-1
245           2          NL-2
NL-3          3          NL-3
345           4          NL-4
678           5          NL-5
345           6          NL-6
NL-7          7          NL-7
NL-8          8          NL-8

但我想把它作为第二张表,如图所示! 任何帮助将不胜感激。 谢谢。

显然有几种方法可以解决这个问题,让我向您展示一种:


没有VBA或帮助程序列

  • 选择列 A 范围A2:A14
  • F5>Special>Empty Values>OK
  • F2或将光标放在编辑栏中
  • 输入以下公式:="NL-"&COUNTIF($A$1:INDEX(A:A,ROW()-1),"NL-*")+1
  • Ctrl+Enter

使用VBA

将以下内容分配给按钮:

Sub Test()
Dim lr As Long, x As Long
Dim rng1 As Range, rng2 As Range, cl As Range
With Sheet1 'Change this into the CodeName of the sheet you refering too
lr = .Cells(.Rows.Count, 2).End(xlUp).Row
Set rng1 = .Range("A1:A" & lr)
If Application.WorksheetFunction.CountBlank(rng1) > 0 Then
Set rng2 = Intersect(rng1, rng1.SpecialCells(xlCellTypeBlanks))
x = 1
For Each cl In rng2
cl.Value = "NL-" & x
x = x + 1
Next cl
End If
End With
End Sub

最新更新