我正在尝试在 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