每次运行某个宏时,我都需要刷新一个表。我将SQL查询存储在表属性中。我试过点击excel中的刷新按钮但是没有用。
下面是我写的(尝试)在调用时更新查询的子。
db = models.ImageField(upload_to="foo")
答案 0 :(得分:0)
对不起,这是一个评论而不是一个答案,但我会在这里发布,所以我可以使用代码块。我以前没有在Excel中使用SQL,但我看到两个可能的原因:
如果“table”不是表“tableQueries”,则必须告诉我们哪张表是正确的。但假设它在“表”上,请尝试使用此代码,看看问题是否仍然存在:
Sub updateTable()
ListObjects("tableQueries").QueryTable.Refresh BackgroundQuery:=True
With ActiveSheet.ListObjects("tableQueries")
.HeaderRowRange(1) = "Column 1"
.HeaderRowRange(2) = "Column 2"
.HeaderRowRange(3) = "Column 3"
.HeaderRowRange(4) = "Column 4"
.HeaderRowRange(5) = "Column 5"
.HeaderRowRange(6) = "Column 6"
End With
End Sub
如果这不起作用,有时With
可能会对表格感到脾气暴躁。试试这个:
Sub updateTable()
ListObjects("tableQueries").QueryTable.Refresh BackgroundQuery:=True
ActiveSheet.ListObjects("tableQueries").HeaderRowRange(1) = "Column 1"
ActiveSheet.ListObjects("tableQueries").HeaderRowRange(2) = "Column 2"
ActiveSheet.ListObjects("tableQueries").HeaderRowRange(3) = "Column 3"
ActiveSheet.ListObjects("tableQueries").HeaderRowRange(4) = "Column 4"
ActiveSheet.ListObjects("tableQueries").HeaderRowRange(5) = "Column 5"
ActiveSheet.ListObjects("tableQueries").HeaderRowRange(6) = "Column 6"
End Sub
答案 1 :(得分:0)
如果你想刷新整张纸而不仅仅是表,那么下面的两行应该可以解决问题。在宏之后运行某个宏和第二行之前放置第一行。
1. ActiveSheet.EnableCalculation = False 'Before your macro
2. ActiveSheet.EnableCalculation = True 'After your macro
例如:
Sub refreshSheet()
ActiveSheet.EnableCalculation = False
'Call your sub here <-----
ActiveSheet.EnableCalculation = True
End Sub