如何遍历两列范围并在每一步中连续选择两列?

时间:2014-06-04 00:16:02

标签: excel-vba for-loop range vba excel

我正在尝试自动执行定义名称的任务。具体来说,我有两列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

2 个答案:

答案 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