2015-04-01 61 views
0

我試圖在offset()match()函數中使用變量。但它不起作用。偏移+與變量vba匹配

For Each Valid_type In Valid_sec_type_range 

'test = Valid_sec_type_range.Cells(1, Valid_type_index).Value 
'test1 = Chr(34) & Valid_type & Chr(34) 

new_range = [OFFSET(Market_value_range,MATCH(Valid_type,sec_type,0)-1,0,COUNTIF(sec_type,Valid_type),1)] 

,當我使用這個它的工作原理,似乎功能匹配和失調不承認Valid_type作爲一個字符串。

For Each Valid_type In Valid_sec_type_range 

'test = Valid_sec_type_range.Cells(1, Valid_type_index).Value 
'test1 = Chr(34) & Valid_type & Chr(34) 

new_range = [OFFSET(Market_value_range,MATCH("Asset Backed",sec_type,0)-1,0,COUNTIF(sec_type,"Asset Backed"),1)] 

回答

0

new_range = [OFFSET(...)]是這樣的語法糖:

new_range.Value = Application.Evaluate("[OFFSET(...)]") 

所以是的,你的變量名被理解爲一個字符串,然後將其理解爲一個區域名稱,和你沒有這個名字的範圍。

如果您正在使用VBA,然後它做在VBA方式:

new_range.Value = Market_value_range.Offset(Application.WorksheetFunction.Match(Valid_type.Value, sec_type, 0) - 1, 0).Resize(Application.WorksheetFunction.CountIf(sec_type, Valid_type.Value), 1) 
+0

謝謝您的幫助! 但它說:運行時錯誤1004,無法獲取工作表功能類的匹配屬性。 – 2015-04-02 17:37:12

+0

這意味着無法在'sec_type'範圍內找到'Valid_type.Value'。 – GSerg 2015-04-02 18:44:55