宏的一部分我刷新了與SQL(它運行查詢以將兩列數據放入選項卡中)的連接,並在數據(不同選項卡)由查詢生成的表上的現有列。由連接字符串生成的VBA查找表生成
'Refreshing Connection named Query From Warehouse
ActiveWorkbook.Connections("Query from Warehouse").Refresh
Range("M2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP([@polid],RwlID,2,FALSE)),[@polid],VLOOKUP([@polid],RwlID,2,FALSE))"
由查詢創建的表被命名RwlID
我遇到的問題是,VLOOKUP只工作了,這是已經在RwlID開始與數據。我想這可能是因爲它在連接完成刷新之前發生的,所以我把宏中其他查詢的兩端代碼移到了宏中(這需要花費更長的時間來運行),但這並沒有幫助。
現在我想Excel仍然認爲RwlID只有一定的長度。因此,例如,昨天是400行,今天延長到450,我的查找只到400. (僅在宏中,當我在宏運行之後再次手動輸入查找時,單元格按我的預期填充)
所以我嘗試添加(RlwID是在片材5):
sheets(5).ListObjects(1).Name = "RwlID"
思考它可能的450表重命名爲RwlID而不是在400,但並不成功。
任何想法,爲什麼它不工作?如何解決它?
謝謝。
我以前試過,它只是返回空白,就像查找公式沒有被插入到預期的列在所有。 Range(「M2」)。Select ActiveCell.FormulaR1C1 = _「= IF(ISNA(VLOOKUP([@ polid],RenewedFromPolID!$ A $ 2:$ B $ 10000,2,FALSE)),[@ polid], VLOOKUP([@ polid],RenewedFromPolID!$ A $ 2:$ B $ 10000,2,FALSE))「 RenewedFromPolID是表的標籤的名稱...不知道是否有明顯的東西我不知道這裏? – user2842721
關於這方面的一些更多信息:除了在桌面上做一個vlookup之外,我還要求代碼複製它,並將列A和B(包含表)粘貼到C和D中。這發生在連接刷新後代碼運行時間,大約一分鐘後,刷新需要幾秒鐘)。列C和D顯示錶格的舊版本。 – user2842721
在連接上禁用背景刷新已解決了我的問題。我現在可以成功運行我的原始Vlookup。 – user2842721