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

Naming the non-empty cells of a column as the previous column's values

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

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 的新手,环顾四周但找不到我想要实现的目标。只需要一个简单的解决方案,它可以自动执行我的代码已经执行的操作,而不必特定于单元格行。 我想如果单元格为空,将会有一个 while 或 for 循环重复多行,并且代码的 if 语句不是 运行ning。

基本上我希望命令 运行 类似于下面的内容,但我自己不太知道如何在 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