我正在尝试自动执行定义名称的任务。具体来说,我有两列A和B,B依赖:
A B
Label1 Data1
Label2 Data2
Label3 Data3
我想在定义的范围内选择两个列,然后遍历它,在列A中定义名为B的列。我认为FOR EACH构造可以工作,但我找不到任何关于如何Excel完全读取FOR EACH中的每个项目。它是否将当前行中的两列都视为一个单元(这可能是我的理想选择)?它是否向下迭代一列而另一列?它是否迭代行中的每一列,然后向下移动?
最终,我会为3或4对列做这个。它们最终将用于填充用户表单中的标签或选择框。例如,如果您从ComboCox' Bacon'中选择,依赖于它的标签将填充为' Eggs'。如果您选择“燕麦片”,它会填充“葡萄干”。
我想要链接大型列,并想出一个快速宏会使它更快。
由于
CODE SO FAR:
Sub FeatureNumberAssignMk2()
'
' FeatureNumberAssignMk2 Macro
'
' Keyboard Shortcut: Ctrl+Shift+L
'
Dim myCells As Range
Set myCells = Selection
For Each Row In myCells
' THIS IS WHERE I AM NOT SURE WHAT IS BEING SELECTED
Row.CreateNames Top:=False, Left:=True, Bottom:=False, Right:= _
False
Next
End Sub
答案 0 :(得分:3)
无需循环。如果选择包含两列的范围,则该命令将使用第一列中的文本为每行创建名称。
myCells.Row.CreateNames Top:=False, Left:=True, Bottom:=False, Right:=False
答案 1 :(得分:2)
...但我找不到任何关于Excel如何准确读取FOR FOR EACH中的每个项目的信息......
供您参考,这是测试For Each
将如何循环的简单方法:
Dim Cell As Range
Dim Rng As Range
Set Rng = Range("A1:B5")
For Each Cell In Rng
Debug.Print Cell.Address
Next Cell
立即窗口的输出如下:
$A$1
$B$1
$A$2
$B$2
$A$3
$B$3
$A$4
$B$4
$A$5
$B$5