Board logo

標題: [發問] 如何引用儲存格內容(=表單名稱)顯示表單? [打印本頁]

作者: e123chen    時間: 2011-4-10 17:31     標題: 如何引用儲存格內容(=表單名稱)顯示表單?

[C1]=台南市
[C2]=中西區

是否能直接引用C1,C2 叫出 userform台南市中西區?
例如 :
Sub 顯示路街巷()
"userform"&[C1]&[C2].show
End Sub

無須如目前逐一列舉。
[attach]5307[/attach]
作者: kimbal    時間: 2011-4-10 21:08

Public Sub subShowUserForm(strFormName As String)
    Dim intNumOfForms As Integer
    Dim intNumOfFormsCounter As Integer
    intNumOfForms = UserForms.Count
    If UserForms.Count > 0 Then
        For intNumIfFormsCounter = 1 To intNumOfForms
            If UserForms(intNumIfFormsCounter - 1).Name = strFormName Then
                UserForms(intNumIfFormsCounter - 1).Show
                Exit Sub
            End If
        Next
    End If
End Sub

用法:
subShowUserForm([C1]&[C2])

估計每個USERFORM的分別,在於只有小許LABEL?
其實弄這麼多個USERFORM, 不如把所有的統一,再在FORM裡面分控件
作者: e123chen    時間: 2011-4-10 21:50

感謝版大指導,這就試試。
作者: e123chen    時間: 2011-4-10 23:02

本帖最後由 e123chen 於 2011-4-11 09:43 編輯

照辦了,沒反應。
能否勞煩版大幫忙看一下? 謝謝!
[attach]5316[/attach]
[attach]5312[/attach]
作者: hugh0620    時間: 2011-4-12 10:35

回復 4# e123chen

     樓主 下述為依您要的結果設計~   僅供參考~
     這不是一個好的方式(針對市與區結合多的時候時,會寫很常)
     請將程式碼貼到你需要的sheet中~
     select 的 case 依您需要的笤整~

Private Sub Worksheet_Change(ByVal 變數 As Range)
If 變數.Row = 1 And 變數.Column = 3 And 變數 <> "" And 變數.Offset(1, 0) <> "" Then
   A = 變數 & 變數.Offset(1, 0)
ElseIf 變數.Row = 2 And 變數.Column = 3 And 變數 <> "" And 變數.Offset(-1, 0) <> "" Then
   A = 變數.Offset(-1, 0) & 變數
Else
   Exit Sub
End If
    Select Case A   
    Case "台南市中西區"
         UserForm1.Show
    Case "台南市東區"
         UserForm2.Show
    Case "台南市南區"
         UserForm3.Show
    End Select
End Sub
作者: e123chen    時間: 2011-4-12 11:53

本帖最後由 e123chen 於 2011-4-20 14:26 編輯

回復 5# hugh0620
感謝大大指導。

我希望 C1輸入"台北市",C2輸入"大安區",就能顯示 "userform台北市大安區" 表單。
目前是用 Select Case,台灣有368個郵遞區號,得寫368個Case。

能不能只寫一行,例如 "userform" & [C1] & [C2].show,自動依據C1,C2內容顯示對應表單。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)