2014-08-28 93 views
-3

我想知道在VBA中是否有一種方法可以打開填充的Excel電子表格並允許用戶選擇包含要提取的數據的特定單元格在一系列文件中,然後將選定的單元格傳遞迴該程序,以便它可以遍歷指定文件夾中的100個文件並提取所需的數據。通過在excel電子表格中選擇用戶輸入

我不想讓別人爲我寫代碼(雖然當然實例很棒)我只是不太確定如何去手動選擇數據並將其傳遞迴程序。我已經有了代碼運行的功能,可以通過100個文件順序提取數據,並將其放在另一個工作表所需的位置。我需要手動選擇,因爲每個文件夾(用戶選擇)中的文件中的數據位置可能會有很大差異。現在我必須明確地在數據的位置進行編程,但是我們有100個報告文件,每個報告文件在每個佈局中都有不同的佈局,因此在數據位置手動編程效率極低。

想法??

+0

@me去如何 - 請解釋一下,因爲我已經查閱了「怎麼問」頁面,看不出哪裏有問題。我問了一個問題,這個問題解釋了我正面臨的問題以及我希望以我想要的輸入和輸出的大致輪廓進行的方向。我沒有包括代碼,因爲我正在尋找這個特定問題的起點,因此我不希望有人爲我提供代碼,而是根據比我自己更好的經驗提供幫助。下面是 – dhnobles 2014-08-28 17:20:32

+0

的好答案。你的更大的問題是驗證用戶選擇什麼,以確保它符合必要的標準,並在嘗試運行任何其他代碼之前這樣做。當你到達那一點時,那將是創建另一個問題的好時機,並遵循「如何問問」的指導方針。即您嘗試過什麼,您擁有哪些代碼,您要遵循的規則是什麼,預期的結果以及代碼出現問題的位置。 **歡迎來到SO!** – guitarthrower 2014-08-28 18:01:51

回答

1

我會

Sub SelectRange() 

    Dim selRng As Range 
    Set selRng = Application.InputBox(Prompt:="Select Range", Title:="", Type:=8) 

    MsgBox selRng.Address 
End Sub 
+0

這肯定是一個更緊湊的解決方案。我很欣賞有關繼續前進方向的幫助。 – dhnobles 2014-08-28 17:26:11

+0

+1。就像沒有複雜開銷的RefEdit一樣。 – 2014-08-28 17:28:53

1

您可以在UserForm上使用RefEdit控件。我認爲RefEdit不是默認啓用的控件,因此您可能需要右鍵單擊工具箱並從「其他控件」中啓用它,一旦您完成該操作,您應該在工具箱中看到它:

enter image description here

如果您希望其他人使用此宏,則可能需要在其計算機上啓用該功能,或將該宏作爲XLAM加載項的一部分進行分發,否則可能無法工作。

enter image description here

RefEdit控件允許用戶選擇範圍內輸入:

enter image description here

的控制將有像RefEdit1一個名字(你可以換到其他的VB的東西VBE的屬性窗格),並訪問您想要的值:

MsgBox UserForm2.RefEdit1.Value 

既然您已經在選定範圍的.Address上有句柄,您可以將它傳遞給其他程序/等。

+0

太棒了!感謝您的指導!我會盡力回覆我在未來幫助其他人的想法。 – dhnobles 2014-08-28 17:07:02

+0

++,但這不是太複雜嗎? – 2014-08-28 17:24:32

+0

ahhh是@mehow我忘記了'InputBox'方法。我在Excel中做的不多:) – 2014-08-28 17:28:04