将列的非空单元格命名为前一列的值

所以我想要的是一个button,当按下时会自动命名右侧列单元格的左侧列值,我的代码在这一刻看起来像这样,

Private Sub CommandButton1_Click() Range("F3").Name = Range("E3") Range("F4").Name = Range("E4") Range("F5").Name = Range("E5") Range("F6").Name = Range("E6") End Sub 

我是使用VBA的新手,并且环视了一下,但是找不到我想要达到的目标。 只需要一个简单的解决scheme,可以自动做我的代码已经做了,而不必具体细胞行。 我想,如果一个单元格是空的,将会有一个while循环或for循环重复执行多行,并且if语句代码不会运行。

基本上我想要命令运行下面的东西,但不知道如何写在Excel VBA自己。

 for j=3:100 if F(j) = non empty F(j).name = E(j) else end next j end 

下图显示了最终结果:

最终结果

从您的示例图像,这看起来应该工作。

 Option Explicit Sub name_eff() Dim rw As Long With Worksheets("Sheet6") For rw = 2 To Application.Min(.Cells(.Rows.Count, "E").End(xlUp).Row, _ .Cells(.Rows.Count, "F").End(xlUp).Row) If Application.CountA(.Cells(rw, "E").Resize(1, 2)) = 2 Then _ .Cells(rw, "F").Name = .Cells(rw, "E").Text Next rw End With End Sub 

named_ranges