1
我有一些代码当前通过表格查看任何单元格,我用浅灰色填充,然后在该单元格中添加值到名称列表。目标是在工作簿中的其他地方,我可以将此列表作为下拉列表引用。更新ActiveWorkbook.Names(“X”)。VBA中的RefersTo和Names.Value
这里是我当前的代码:
Sub Add_Food_To_List()
i = 1
Application.ScreenUpdating = False
Range("a1:a60").Select
x = "{"
y = ""
first = True
For Each Cell In Selection
If ActiveCell.Interior.ColorIndex = "2" Then
i = i + 1
If first = False Then
x = x & ", " & ActiveCell.Value
y = y & ", " & ActiveCell.Address
End If
If first Then
x = x & ActiveCell.Value
y = y & ActiveCell.Address
first = False
End If
ActiveWorkbook.Names("Foods").RefersTo = y
ActiveWorkbook.Names("Foods").Value = x
End If
ActiveCell.Offset(1, 0).Select
Next Cell
Range("a1").Select
Application.ScreenUpdating = True
End Sub
出于某种原因,For Each Cell In Selection
内这两条线:
ActiveWorkbook.Names("Foods").RefersTo = y
ActiveWorkbook.Names("Foods").Value = x
相互覆盖。无论哪一个最终都会以名称中的RefersTo AND Value设置的值结束。
奖励:这是我的第一个VBA脚本。我怎样才能让这个脚本在整个工作簿上运行,而不仅仅是活动工作表?另外,如何在保存或工作簿更新时自动运行它?
我开始在这个解决方案的方向努力我张贴的问题后,但动态范围,这预存钩是难以置信的帮助。谢谢! –
就像更新一样,保存后挂钩在附加值之前不检查重复项。我正在研究解决这个问题。只是想抬起头来。 –
@MikeM。 - 原始要求中没有列出,但它很容易修复:)查看我编辑的代码作为处理它的一种方法。 –