我继承了一个充满VBA的电子表格,我几乎一无所知。
当数据被刷新时,电子表格通过VBA重新格式化自身。我不得不更改一些选项卡名和表名,而现在当自动重新格式化在其中启动时,会出现一个错误,因为它正在寻找旧的表名。
对不起,如果这是一个糟糕的解释/术语,我真的从来没有涉及到VBA通常!
所以我得到的错误是
运行时错误“450”:错误的参数数或无效的属性分配
调试带我到了这一行
For Each rptTable In sID.ListObjects
rptTable.TableStyle = teamName <--- this is the highlighted line in debug
oldSize = rptTable.ListRows.Count
If oldSize < teamSize ThenteamName有新的值,rptTable.TableStyle有旧的值。
这些变量的定义如下:
Sub FormatSheet(sID As Worksheet)
'Clear debugWindow
Call clearDebugConsole
Application.StatusBar = "Formatting Teamsheet ... "
'Change Active Sheet to the Sheet being Formatted
Worksheets(sID.Name).Activate
Debug.Print "* Entered FormatSheet Sub"
' Set Variables
....
Dim rptTable As ListObject我基本上是想弄清楚ListObject是如何填充的,旧名字是从哪里取来的?excel电子表格中的全局搜索不会找到它
发布于 2018-05-22 10:19:05
好的,“团队名称”的值似乎与TableStyles中的任何内容不相对应。
停止该行上的代码,并查看值变量teamname持有的值。表样式中需要存在值。我猜是有空字符串。你需要给它分配一些类似"TableStyleMedium2“之类的东西。您可以在设计带状->表样式中找到这些名称。使用没有空格的值。
https://stackoverflow.com/questions/50464958
复制相似问题