使用变量在VBA中命名所选范围

时间:2013-12-12 03:57:58

标签: excel vba excel-vba

2个问题,我已复制的程序并将另一个工作表中的表粘贴到您选择的单元格中。我想要做的是使用变量命名这个选定的表,我该怎么做?换句话说,我已经在底部(Selection.Name = Ans),但这不会命名所选的变量Ans是什么

由于某些原因,Vlookup也无法正常工作,我认为这与我如何设置范围“MyRange”有关。

“VLOOKUP

Dim Ans As Variant
Dim myVal As String
Dim MyRange As Range
Set MyRange = Sheets("Program (H)").Range("A1:B50")
myVal = Sheets("Program (H)").Range("D2")
Ans = Application.VLookup(myVal, MyRange, 2, False)
If IsError(Ans) Then
Ans = "Not Found!"
Else
'do nothing
End If

Selection.Name = Ans

如果它有助于整个代码:

Sub New_Table()
    ' New_Table Macro

    'Reveals the Worksheet "Program (H)"
    With Worksheets("Program (H)")
    .Visible = True
    End With

    'Add 1 to the counter
    Sheets("Program (H)").Select
    Range("D2").Value = Range("D2").Value + 1

    'Paste the sheet
    Sheets("Caclulator (H)").Select
    Range("B3:P17").Select
    Selection.Copy
    Sheets("SOR Data").Select
    ActiveSheet.Paste

    'VLOOKUP

    Dim Ans As Variant
    Dim myVal As String
    Dim MyRange As Range

    Set MyRange = Sheets("Program (H)").Range("A1:B50")
    myVal = Sheets("Program (H)").Range("D2")
    Ans = Application.VLookup(myVal, MyRange, 2, False)

    If IsError(Ans) Then
        Ans = "Not Found!"
    Else
        'do nothing
    End If

    Selection.Name = Ans

    'Hide the sheet again

    With Worksheets("Program (H)")
        .Visible = False
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

问题解决了!我在VBA中杀死了VLOOKUP,在excel中的单个单元格中执行了它,只是引用了该单元格来命名表格,这样更容易,只需要使用一行

使用:

Selection.Name = Worksheets("Program (H)").Range("F2")

其中F2是excel中的VLOOKUP