2015-04-22 18 views
0

我有2個組合框。第一個組合框(CboReviewDate)包含日期。第二個組合框(CboReviewModule)將填充活動工作簿中所有工作表的名稱(如果它們包含與「CboReviewDate」中選擇的日期相匹配的「x」列中的日期)。作爲日期選擇的結果,如何使用工作表的名稱填充組合框?

我需要幫助建立邏輯和選擇正確的搜索工具。 這個邏輯流程會起作用嗎? 循環例程是否會清除CboReviewModule中的現有條目?

這是我的學習過程,所以我想自己開發代碼。請指點我正確的方向。

這裏是我的僞代碼:

'Run on "CboReviewDate"_change state 
'CountIf (date in column "x" = "CboReviewDate.Value") in worksheet 1 of active workbook 
'if result <> 0 then pass name of worksheet to variable "a" 
'.additem to "CboReviewModule" using value of variable "a" 
'reset value of variable "a" and loop until all worksheets in active workbook have been searched 
+0

您提供的詳細信息應該顯示您用來填充組合框的代碼,並且應該給出一些關於數據位於哪些範圍和工作表的說明,但您沒有提供任何相關信息。 – Davesexcel

+0

我明白我沒有提供任何代碼進行審查。有沒有更好的方法來解釋我的問題,以獲得關於我的方法的反饋,而不是我的代碼?我正在尋找的答案類型如果採用以下形式:「不,您應該使用Count函數而不是Countif函數,原因是x,y,z。」 –

回答

1

好了,這裏是我的指點你在正確的/可/一些?方向。

  • ,當你選擇一個日期
  • 在這種情況下,你應該映射過程的第一個組合框應觸發Change事件,這將
  • A)週期中的所有工作表(Workbook.Worksheets集合)
  • 乙)檢查每列Worksheet列X中的日期
  • C)您如何檢查取決於您,您可能希望試驗Find方法對象Range(記錄宏爲Ctrl+F並看看它是如何工作的),但要小心錯誤處理(當找不到匹配時)
  • D)如果找到日期,則Worksheet.Name被添加到第一個組合框的項目集合中。
+0

謝謝Marek。我現在有一堆關鍵字開始搜索。關閉做一些研究。 * zip * –

+0

@IsaacRothstein回來的結果,我們可以再看看它。 –

+0

我已經能夠在解決方案方面取得進展。我已經完成搜索並生成結果。 http://stackoverflow.com/questions/29947244/how-do-i-get-vba-loop-result-to-populate-a-combobox –

相關問題