我正在尝试在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)]
答案 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)