如何在VBA中刷新名称为拼接字符串结果的查询?
VBA刷新对应周数查询报错解决方法
错误根源
你写的代码里犯了一个基础错误:在调用Queries时,把变量QueryName用双引号括起来了,这会让VBA直接去找名为"QueryName"的查询,而不是你用周数拼接出来的动态名称,自然会报找不到的错误。
修正后的代码
Private Sub Workbook_Open() Dim WeekNum As String Dim QueryName As Variant WeekNum = WorksheetFunction.WeekNum(Now, vbSunday) QueryName = "2024Week" & WeekNum ' 直接使用变量QueryName,不要加双引号 ActiveWorkbook.Queries(QueryName).Refresh End Sub
额外提醒
- 确认你的查询名称严格是
2024WeekX的格式,比如第5周就是2024Week5,大小写、拼写必须完全一致 - 如果你的查询名称是带前导零的格式(比如
2024Week05),需要把周数格式化为两位数字,修改这一行:WeekNum = Format(WorksheetFunction.WeekNum(Now, vbSunday), "00")
内容的提问来源于stack exchange,提问作者Jennifer Hamilton
相关产品推荐
相关产品推荐

