2012-06-07 35 views
0

所以我試圖使用用戶窗體來傳遞答案作爲搜索給定文件夾內的文件的方法。例如,這是我想要做的。將用戶窗體中的教科書答案作爲參數傳遞給單獨的宏

選擇文件1 _ _

選擇文件2 _ _

按鈕

我希望能夠在文本框中輸入文件路徑,然後通過他們作爲一個單獨的宏將參數加載到當前工作簿的數據。但是,我無法在任何地方找到任何關於此的信息。

有人可以展示這樣的基本例子嗎?


太棒了。我仍然困惑於如何從用戶窗體中傳遞。

所以我

私人小組TextBox1_Change()

末次

私人小組TextBox2_Change()

末次

我怎麼指定的應答作爲全球我可以傳遞給GetDataFromSelectedFile宏的變量?


這是窗體佈局:

LabelTextBox1文本框 LabelTextBox2文本框

    Command Button 

替補用戶窗體下:

私人小組CommandButton1_Click() 呼叫ProcessSelectedFile - 這是與之前發佈的相同 致電RemoveDups - does not真正的問題是什麼呢,因爲它經過
ProcessSelectedFile工作實施 結束小組

私人小組TextBox1_Change() 「ChDrive(SPATH)」這是我在哪裏不清楚自己在做什麼 「CHDIR(SPATH) 「vOpen_File = Application.GetOpenFilename

結束子

私人小組TextBox2_Change()

結束子

基本上,如果你可以告訴我如何在用戶窗體中記錄答案,並將其傳遞給ProcessSelectedFile,然後使命令按鈕單擊做這兩個宏它將工作。

謝謝

回答

1

這應該讓你指出正確的方向。

我在名爲c:\killme的目錄中設置了2個測試文件,名爲workbook1.xlsxworkbook2.xlsx。我爲Sheet1的兩個文件在A1單元格中輸入了不同的值,並保存並關閉它們。

在第三個工作簿中,我添加了一個模塊並添加了下面的代碼。在路徑和文件到GetDataFromSelectedFile和範圍A1上你在工作簿的Sheet

Option Explicit 

Sub GetDataFromSelectedFile(sFile As String, sPath As String) 
    ' Clear sheet before getting data from selected workbook 
    ActiveSheet.UsedRange.Clear 

    ' Get data from the selected workbook 
    With Sheet1.Range("A1") 
     .Formula = "= '" & sPath & "[" & sFile & "]Sheet1'!RC" 
     .Value = .Value 
    End With 
End Sub 

Sub ProcessSelectedFile() 
    Dim SelectedFile As String 
    Dim SelectedPath As String 

    ' Set SelectedFile to value selected by user 
    SelectedPath = "C:\killme\" 
    SelectedFile = "workbook2" 

    Call GetDataFromSelectedFile(SelectedFile, SelectedPath) 
End Sub 

通行證將與來自所選擇的文件對應的小區進行填充。此外

ChDrive (sPath) 
ChDir (sPath) 
vOpen_File = Application.GetOpenFilename 

,如果您想驗證上存在的路徑:

+0

太棒了。我仍然困惑於如何從用戶窗體中傳遞。 所以我 私人小組TextBox1_Change() 結束小組 私人小組TextBox2_Change() 結束小組 我怎麼指定的應答作爲一個全局變量,我可以傳遞給GetDataFromSelectedFile宏? – googlekid

1

你應該使用GetOpenFilename功能用戶友好

If fso.FolderExists(sPath) Then 
    msgbox "File exists" 
Else 
    msgbox "File doesn t exist" 
End If 

參考圖書館「Microsoft腳本運行」這個。 不要爲此使用全局變量,這是不必要的。