簡體   English   中英

將范圍從其他工作簿分配給變量

[英]Assign range from a different workbook to variable

我想使用WorksheetFunction.Match函數,並需要用一個區域加載它。

Row = WorksheetFunction.Match(country, Countries, 0)

您能幫我構造Countrys變量嗎? 我嘗試了很多方法(包括以下方法),但似乎都沒有效果...

Countries = Workbooks("PERSONAL.XLSB").sheets("Sheet1").Range("B:B") 
Countries = Worksheets("PERSONAL.XLSB!Sheet1").Range("B:B") 
Countries = Worksheets.Range("PERSONAL.XLSB.Sheet1!B:B")  ...

我也嘗試了上面的一些“ Set”,但是那還是沒有幫助。

好吧,我使用下面的代碼,它可以正常工作。 您確實有一個PERSONAL.XLSB文件,該文件在啟動Excel時正在加載並隱藏嗎? 錯誤消息是什么-下標是否超出范圍?

Public Sub test()

 Dim r As Integer
 Dim Countries As Range
 Dim Country As Range

 Set Countries = Workbooks("PERSONAL.XLSB").Worksheets("Sheet1").Range("C1:C8")
 Set Country = Workbooks("PERSONAL.XLSB").Worksheets("Sheet1").Range("A1")

 r = WorksheetFunction.Match(Country, Countries, 0)

 MsgBox (r)

End Sub

OK問題解決了,thanx Dave!

我實際上將其用作返回國家所屬“區域”的函數:

Function AreaEMEA(Country As String)
 Dim Countries As Range
 Dim Areas As Range
 Set Countries = Workbooks("PERSONAL.XLSB").Worksheets("Sheet1").Range("B:B")
 Set Areas = Workbooks("PERSONAL.XLSB").Worksheets("Sheet1").Range("A:A")
 Row = WorksheetFunction.Match(Country, Countries, 0)
 AreaEMEA = WorksheetFunction.Index(Areas, Row)
End Function

我稱之為使用

"=PERSONAL.XLSB!Module1.areaemea(A1)"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM