假設我有一個UDF將在工作表中使用100,000次以上。在函數中,有沒有一種方法可以讓它知道在批處理中要調用多少次?基本上我想要做的是讓每個功能都創建待辦事項列表。我想要做的事情如下:VBA UDF能夠「知道」將運行哪些其他函數嗎?
IF remaining functions to be executed after this one = 0 then ...
有沒有辦法做到這一點?
背景:
我想要將與剛剛給出的參數(日期,時間,節點類型)的用戶執行SQL查詢一個UDF。如果你願意在每次運行該函數時真正執行SQL查詢,那麼這很容易實現。我知道這很容易,因爲我這樣做,而且速度很慢。我的新想法是首先讓函數查看它正在查找的數據是否存在於全局緩存變量中,以及是否不將它添加到全局變量「job-list」中。
我想要做的是當最後一個函數被調用,然後通過作業列表並執行最少數量的SQL查詢並填充全局緩存變量。一旦緩存變量已滿,它將執行表刷新以使所有其他函數再次被調用,因爲在隨後的調用中他們將在緩存中找到他們需要的數據。
聽起來這個控件應該不在函數之外。如果功能應該知道這將是一個糟糕的設計。這些信息在批處理中如何提供? – Bulat 2013-02-10 17:18:32
我很確定UDF無法訪問那種信息。 – 2013-02-10 17:42:33
@Bulat,按批處理我的意思是,像用戶在一堆單元格中粘貼相同函數時那樣運行的函數隊列。看起來像查爾斯建議的應用程序事件可能會做的伎倆,只是不知道如何實現它爲我的目的。我會玩弄它,看看我學到了什麼。 – 2013-02-10 22:41:02