2016-11-23 123 views
1

我有一個工作簿級別名爲範圍「查找」是2列。它將用作查找/替換對。當我嘗試將範圍變量設置爲指定範圍時,出現類型不匹配錯誤。如何將變量設置爲名爲range的工作簿級別?Excel VBA設置爲可變到工作簿級別命名範圍

Sub UpdateResults() 
Dim rngLookup As Range, rngUpdate As Range, sFrom As String, sTo As String, iLookupRowCount As Long, iRow As Long 
Set rngLookup = ActiveWorkbook.Names("Lookup") 
If rngLookup Is Nothing Then GoTo ExitSub 

Set rngUpdate = ActiveWorkbook.Names("Resource_File") 
If rngUpdate Is Nothing Then GoTo ExitSub 

iLookupRowCount = rngLookup.Rows.Count 
If iLookupRowCount < 1 Then GoTo ExitSub 

For iRow = 1 To iLookupRowCount 
    sFrom = rngLookup.Cells(iRow, 1) 
    sTo = rngLookup.Cells(iRow, 2) 
Debug.Print sFrom 
Debug.Print sTo 
Next iRow 


Exit Sub 
ExitSub: 
End Sub 

回答

1

例如:

Set rngLookup = Range("Lookup") 
+0

謝謝!我想過使用它,但我認爲我只能以這種方式引用表單名稱。當您爲Activeworkbook自動添加成員時,沒有「範圍」。 – user2378895

3

您試圖Name對象設置爲一個Range對象。

使用

Set rngLookup = ActiveWorkbook.Names("Lookup").RefersToRange 

檢查: https://msdn.microsoft.com/en-us/library/office/ff834918.aspx

+0

謝謝,這是有道理的。仍然不明白爲什麼@Limak方法的作品。範圍對象不適用於工作簿,那麼如何才能用它來引用工作簿級別命名的範圍?在我看來,它只適用於表級名稱.... – user2378895

相關問題