将范围从不同的工作簿分配给variables
我想使用WorksheetFunction.Match函数,并需要加载一个区域。
Row = WorksheetFunction.Match(country, Countries, 0)
你能帮我构build国家variables吗? 我尝试了很多方法(包括下面),但似乎没有工作…
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") ...
我也尝试了一些上面的“设置”在前面,但是也没有帮助…
那么我使用下面的代码,它工作正常。 你有一个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)"