在工作簿中使用variables的Excel VBA活动不起作用(dynamic获取活动工作簿名称)

嗨,我正在创buildvba项目,我需要从一个工作簿切换到另一个我需要dynamic活动工作簿名称

所以我想使用这个代码,在这里我得到错误“脚本超出范围”

Dim wb wb = ActiveWorkbook.FullName wb = Split(wb, "\")(UBound(Split(wb, "\"))) Workbooks("wb").Activate 

但是当我更改dynamic工作簿的dynamic名称为静态..此代码工作…

 Dim wb Workbooks("project1.xlsm").Activate 

请帮助家伙..因为我需要活动工作簿的dynamic名称…

您现有的代码中的错误是由您尝试使用String文字"wb"而不是variableswb 。 所以以下应该工作:

 Dim wb As String wb = ActiveWorkbook.FullName wb = Split(wb, "\")(UBound(Split(wb, "\"))) Workbooks(wb).Activate 

但是,使用FullName然后剥离path组件与使用Name属性没有什么不同:

 Dim wb As String wb = ActiveWorkbook.Name Workbooks(wb).Activate 

但是最好只创build一个Workbook对象并直接使用它:

 Dim wb As Workbook Set wb = ActiveWorkbook wb.Activate 

注意:使用ActivateSelect是很有必要的。 没有看到你的下面的代码很难帮助你很好的代码,但也许是这样的:

 Dim wb As Workbook Set wb = ActiveWorkbook wb.Worksheets("Sheet1").Range("A1").Value = wb.Worksheets("Sheet1").Range("A2").Value 

查看这个问题的答案可能是一个想法。