偏移+与变量vba匹配

时间:2015-04-01 14:31:29

标签: vba offset countif

我正在尝试在offset()match()函数中使用变量。但它不起作用。

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)]

1 个答案:

答案 0 :(得分:1)

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)