Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。

? 發問於 電腦與網際網路軟體 · 7 年前

excel 使用userform表單作下拉式選單更改資料2

各位知識+的達人你好:

請問使用userform表單作下拉式選單,要如何進行資料的修改?

https://tw.knowledge.yahoo.com/question/question?q...

3 個解答

評分
  • 7 年前
    最愛解答

    EXCEL VBA.利用UserForm建立後,如何再執行更改內容

                             <.准提部林.>

    ---------------------------------

    ■程式碼1:以〔更改〕模式啟動Form

     Sub 更改()

     Set xRng = ActiveCell

     With xRng '先〔選取〕要更改的資料列

       If .Column <> 2 Or .Row < 5 Or .Value = "" Then

       MsgBox "請選擇要更改的〔姓名〕列 ": Exit Sub

     End If

     End With

     xMode = 2 '以參數提供程式判別〔新增〕或〔更改〕

     UserForm2.Show

     End Sub

     

    ■程式碼2:按下〔確定〕填入資料

     Private Sub CommandButton1_Click()

     Dim ct As Control, mi As Long, uR As Range

     If ComboBox1 = "" Then _

      MsgBox "※請選擇[姓名]!" & vbCr: ComboBox1.SetFocus: Exit Sub

     If Val(ComboBox2) = 0 Then _

      MsgBox "※請選擇[區域]!" & vbCr: ComboBox2.SetFocus: Exit Sub

     

     Set uR = [B65536].End(xlUp)(2) '這是〔新增〕資料的定位格

     If xMode = 2 Then Set uR = xRng '若為〔更改〕,則以〔選取格〕定位

     uR.Select

     uR.Resize(1, 3) = Array(ComboBox1, ListBox1.List(0), ComboBox2)

     MsgBox IIf(xMode = 2, "~更改", "~新增") & ".完成~ "

     End Sub

    ---------------------------------

    <範例檔>下載:

    檔案名稱:TEST(任務調派).rar

    下載連結:http://www.funp.net/511047

    ---------------------------------

    2014-11-03 20:18:03 補充:

    Private Sub UserForm_Initialize()

    ~~

    ~~

    On Error Resume Next

    If xMode = 2 Then

     ComboBox1.Value = xRng

     ComboBox2.Value = xRng(1, 3)

    End If

    End Sub

    載入表單最後加入On Error 指令,以防沒有符合內容發生錯誤!

    2014-11-04 09:57:18 補充:

    提醒一下:

    ComboBox 的屬性〔Style〕設為 2-fmStyleDropDownList

    強制使用者只能從下拉清單中選取輸入,無法手輸,

    即可避免輸入錯誤的資料!

  • 7 年前

    收到了准大的提醒.謝謝~

  • Airman
    Lv 4
    7 年前

    奇怪~這一題怎麼都沒有顯示在"知識圈回答"欄區裡呢?

還有問題嗎?立即提問即可得到解答。