我已经在 Excel 2010 中编写了一些代码,并将它们交给了一位使用 Excel 2013 的同事。然而,它们在较新版本的 Excel 中无法正常工作。例如,当您按下用户表单上的按钮时,它应该打开与所选帐户相对应的选项卡,但在他的计算机上,每个按钮都指向同一个选项卡。我已经检查了他的 VBA 参考库,这似乎不是问题所在。不同版本的 Excel 之间有什么区别?我只是惊讶于我同事的较新版本无法在用旧版本编写的代码上运行?
示例代码
Sub GotoAccount()
Dim wksMaster as Workbook
Dim SheetName as String
Set wksMaster = Workbooks("2019 Account Log.xlsm")
SheetName = ActiveSheet.Shapes(Application.Caller).TopLeftCell
With Sheets(SheetName)
.Visible = True
.Activate
End With
End Sub
此子程序应该调出与日志中特定帐户关联的选项卡。对象Application.Caller
是按钮,帐号隐藏在按钮后面。因此,的赋值语句SheetName
记录帐号,并将用于调出名称为帐号的选项卡。结果发现,这是一个小错误;集合Sheets
未连接到wkbMaster
。但是,Excel 并没有完全崩溃,而是调出了日志中记录的另一个帐户的选项卡。这就是我怀疑 Excel 2013 对某些代码的处理方式不同的原因。