2013-12-12 79 views
0

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

由于某种原因,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 
+0

该vlookup适合我。检查你的数据。 Regd你的第一个查询,你可以重述吗? –

+0

只是改变了它,谢谢。我的数据是两列,左列(A)是数字1 - 50,右列B是名字表1 - 表50 –

+0

我明白你想要什么名字?这是vlookup的结果吗? –

回答

0

问题解决了!我杀死在VBA中VLOOKUP,在Excel中的单个细胞做到了,只是引用了细胞命名表,所以更容易和只需要使用一个线

用途:

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

凡F2是excell中的VLOOKUP