標題:
請問 HLOOKUP 的 table_array 這部分使用名稱定義是否可行!
[打印本頁]
作者:
a8552065
時間:
2017-3-28 16:01
標題:
請問 HLOOKUP 的 table_array 這部分使用名稱定義是否可行!
想用 HLOOKUP 的 table_array 這部分使用名稱定義
並且用一個儲存格紀錄檔案的位置 = 'D:\[晴雨表.xlsx]天氣狀況統計'!$D$3:$AAR$6
Sheets("1.切換").Range("A16") = 'D:\[晴雨表.xlsx]天氣狀況統計'!$D$3:$AAR$6
但是在名稱管理器的部分確顯示 ="D:\[晴雨表.xlsx]天氣狀況統計'!$D$3:$AAR$6",導致HLOOKUP的 table_array 範圍錯誤。
相關VBA如下:
Sub test() '透過vba,讓hlookup可以用"名稱定義"的方式,快速參考晴雨表位置
Dim a As String
a = Sheets("1.切換").Range("A16") '.Value
ActiveWorkbook.Names.Add Name:="晴雨表", RefersTo:=a
End Sub
已經測試過字符串的方式也無法達成,有長輩處理過這樣的問題嗎!先感謝了
作者:
stillfish00
時間:
2017-3-28 19:14
回復
1#
a8552065
A16儲存格前面額外多加一個單引號看看。
作者:
GBKEE
時間:
2017-3-29 08:59
回復
1#
a8552065
試試看
Option Explicit
Sub Ex()
Dim Wb(1 To 2) As Variant, Rng(1 To 2) As Range, MyWb As Workbook
Set MyWb = ActiveWorkbook
Set Rng(1) = MyWb.Sheets("1.切換").Range("A16") ''D:\[晴雨表.xlsx]天氣狀況統計'!$D$3:$AAR$6
Wb(1) = Split(Rng(1), "]")(0) ''D:\[晴雨表.xlsx
Wb(1) = Replace(Wb(1), "[", "") ''D:\晴雨表.xlsx
Wb(2) = Split(Split(Rng(1), "]")(1), "!") 'Wb(2)(0)='天氣狀況統計' , Wb(2)(1)=$D$3:$AAR$6
With Workbooks.Open(Wb(1))
Set Rng(2) = .Sheets(Wb(2)(0)).Range(Wb(2)(1)) 'D:\[晴雨表.xlsx]天氣狀況統計'!$D$3:$AAR$6
MyWb.Names.Add Name:=" 晴雨表", RefersTo:=Rng(2)
.Close
End With
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)