Vba 非连续计数细胞
我不完全确定如何表达我的意图,但我会尽我所能 我想按单击的顺序计算Excel中的非连续单元格 例如,假设列Vba 非连续计数细胞,vba,excel,contiguous,Vba,Excel,Contiguous,我不完全确定如何表达我的意图,但我会尽我所能 我想按单击的顺序计算Excel中的非连续单元格 例如,假设列A有一个下拉列表,我希望列B记录列A下拉列表的选择顺序。因此,如果一个人跳过A1:A3并选择A4,那么B4将等于1;接下来,他们选择A2,然后设置B2=2 这有可能吗?我尝试过索引、vlookups、计数、辅助细胞,但似乎什么都不起作用,因为我假设Excel以顺序方式思考,而我所做的是试图解释看似随机的非顺序的人类交互 禁用迭代计算也不是一个选项,因为还有其他依赖于迭代的引用 我知道VBA,
A
有一个下拉列表,我希望列B
记录列A
下拉列表的选择顺序。因此,如果一个人跳过A1:A3
并选择A4
,那么B4
将等于1
;接下来,他们选择A2
,然后设置B2=2
这有可能吗?我尝试过索引、vlookups、计数、辅助细胞,但似乎什么都不起作用,因为我假设Excel以顺序方式思考,而我所做的是试图解释看似随机的非顺序的人类交互
禁用迭代计算也不是一个选项,因为还有其他依赖于迭代的引用
我知道VBA,但只是很浅薄。如有任何帮助,将不胜感激。谢谢。在工作表代码区域中放置以下事件宏:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range, wf As WorksheetFunction
Dim B As Range
Set A = Range("A:A")
Set B = Range("B:B")
Set wf = Application.WorksheetFunction
If Intersect(A, Target) Is Nothing Then Exit Sub
If Target.Count <> 1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1).Value = wf.Max(B) + 1
Application.EnableEvents = True
End Sub
Private子工作表\u更改(ByVal目标作为范围)
调暗A作为范围,wf作为工作表功能
变暗B为范围
设置A=范围(“A:A”)
设置B=范围(“B:B”)
设置wf=Application.WorksheetFunction
如果Intersect(A,目标)为空,则退出Sub
如果目标计数为1,则退出Sub
Application.EnableEvents=False
目标偏移量(0,1).Value=wf.Max(B)+1
Application.EnableEvents=True
端接头
由于它是工作表代码,因此安装和自动使用非常容易:
必须启用宏才能工作工作绝对完美!谢谢你的链接@c、 wendel感谢您的反馈!