簡體   English   中英

使用文本框作為過程(子)輸入參數

[英]Using Textbox as procedure(sub) input parameter

我的代碼有些麻煩。 如果您能幫助我解決我的問題,我會很高興。

這是我的工作表(名稱為SetSheet)的代碼部分; cmdSelProjectDir_Click()是我的ActiveX命令按鈕,我嘗試選擇我的工作目錄。 SetSheet.txtSetWorkDir是我的ActiveX文本框,將選定的目錄路徑寫入其中。 GetFolder(txtDir)是我從“設置”模塊中調用的過程。

但是我沒有以正確的方式構建它會給出類似“ Type Mismatch”的錯誤。 但是我不知道如何將這種類型的結構應用於代碼,因為我還將在其他工作表上使用此GetFolder子過程。

'/SetSheet Page
    Sub cmdSelProjectDir_Click()
    Dim txtDir As TextBox
    Set txtDir = SetSheet.txtSetWorkDir
    Call Settings.GetFolder(txtDir)
    End Sub

這是我的程序;

'/GetFolder procedure from Settings module.

    Sub GetFolder(txtDir As TextBox)
        Dim fdo As FileDialog
        Dim sDir As String
        Set fdo = Application.FileDialog(msoFileDialogFolderPicker)
        With fdo
            .Title = "Select a Directory"
            .AllowMultiSelect = False
            .InitialFileName = Application.DefaultFilePath
            If .Show <> -1 Then GoTo NextCode
            sDir = .SelectedItems(1)
            txtDir.Value = sDir
            Debug.Print txtDir.Value; sDir

        End With
    NextCode:
    '    GetFolder = sDir
        Set fdo = Nothing
    End Sub

您必須為ActiveX文本框使用MSForms.TextBox而不是TextBox

Dim txtDir As MSForms.TextBox

Sub GetFolder(txtDir As MSForms.TextBox)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM