将stringvariables传递给MSExcel VBA

我试图build立一个macros,将从一个命名的范围中读取单元格值,然后通过添加一个前缀来修改该值,然后将其传递给Range调用。

基本上,我有一个下拉菜单用于select一个层,然后执行macros时,它应该select一个表,然后取消隐藏范围的基础上。

Dim rCell As Range Dim StrSheetSelect As String Set rCell = Range("ProjectTier") Dim Tier As String Dim rTier As Range ' Sheet 1 - Assess and Initiate Set Tier = "AI+'rCell'" Set rTier = Tier StrSheetSelect = "1. Assess and Initiate" Sheets(StrSheetSelect).Select ActiveSheet.Range("Tier").Select Selection.EntireColumn.Hidden = False ActiveSheet.Range("Tier").AutoFilter Field:=1, Criteria1:="<>NA", Operator:=xlAnd 

我在“设置层”function中出现“需要对象”错误。 一般来说,我对excel vba和vb很不熟悉

谢谢!

我看到一些问题。 首先,“设置”仅用于对象。 在VBA中string是内置types,而不是对象。 所以抛出错误的行应该开始:

 Tier = "AI ... 

然后,RHS是一个文字string,但它看起来像试图从rCell获取值。 另外,连接string使用'&'而不是'+'。 尝试类似

 Tier = "AI" & rCell.Value 

然后将其转换为一个范围,你需要像这样的东西:

 Set rTier = Range(Tier) 

希望有所帮助