返回列表 上一主題 發帖

請問如何用Textbox新增資料到Sheet?

回復 2# jeffrey628litw
試試看
  1. Private Const Sh = "Sheet1"    '資料庫                   '模組的私用常數
  2. Dim d As Object                                          '模組的私用變數
  3. Private Sub UserForm_Initialize()
  4.     Set d = CreateObject("Scripting.Dictionary")
  5.     With Sheets(Sh)
  6.         K = 2
  7.         Do While .Cells(K, "A") <> ""
  8.             d(.Cells(K, "A").Value) = ""
  9.             K = K + 1
  10.         Loop
  11.     End With
  12.     ListBox_1.List = d.KEYS
  13. End Sub
  14. Private Sub ListBox_1_Change()  '需修改 緊急度 ListBox控制項名稱
  15.      資料制定 1                 '呼叫程式 傳遞參數 : 1
  16. End Sub
  17. Private Sub ListBox_2_Change()  '需修改 製程 ListBox控制項名稱
  18.      資料制定 2                 '呼叫程式 傳遞參數 : 2
  19. End Sub
  20. Private Sub ListBox_3_Change()  '需修改 部門 ListBox控制項名稱
  21.      資料制定 3                 '呼叫程式 傳遞參數 : 3
  22. End Sub
  23. Private Sub ListBox_4_Change()  '需修改 持有者 ListBox控制項名稱
  24.      資料制定 4                 '呼叫程式 傳遞參數 : 2
  25. End Sub
  26. Private Sub ListBox_5_Change()  '需修改 案件  ListBox控制項名稱
  27.      資料制定 5                 '呼叫程式 傳遞參數 : 2
  28. End Sub
  29. Private Sub 資料制定(OB As Integer)
  30.     Dim xValue As String, i As Integer, xCellValue As String
  31.     '***案件基本資料的TextBox 請修改 TextBox1-TextBox9
  32.     For i = 1 To 9
  33.          Controls("TextBox" & i) = ""                                       '案件基本資料的TextBox控制項.清空
  34.     Next
  35.     Set d = CreateObject("Scripting.Dictionary")                            '重設物件
  36.       For i = 1 To 5
  37.        If i <= OB Then
  38.             xValue = xValue & Controls("ListBox_" & i).Value                '結合ListBox的值
  39.         Else
  40.             Controls("ListBox_" & i).Clear                                   'ListBox清單清除
  41.         End If
  42.       Next
  43.       With Sheets(Sh)
  44.         K = 2
  45.         Do While .Cells(K, "A") <> ""
  46.             xCellValue = Application.Phonetic(.Cells(K, "A").Resize(1, OB)) '結合儲存格的值
  47.             If OB = 5 And xValue = xCellValue Then
  48.                 For i = 1 To 9
  49.                     Controls("TextBox" & i) = .Cells(K, OB).Offset(, i)     '案件基本資料的TextBox控制項.輸入資料
  50.                 Next
  51.                 Exit Sub
  52.             ElseIf OB < 5 And xValue = xCellValue Then
  53.                 d(.Cells(K, OB + 1).Value) = ""
  54.             End If
  55.             K = K + 1
  56.         Loop
  57.         If OB < 5 Then Controls("ListBox_" & OB + 1).List = d.KEYS
  58.     End With
  59. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# jeffrey628litw
  1. 3# 這兩行須置於模組的頂端
  2. 01.Private Const Sh = "Sheet1"    '資料庫                   '模組的私用常數
  3. 02.Dim d As Object                                          '模組的私用變數
複製代碼
請將UserForm2 內的程式碼清空,貼上3#的程式碼,試試看
可行後再加上原本的, 刪除緊急度,新增緊急度......的程式碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# jeffrey628litw
附檔的表單控制項名稱 與你原本附檔不一樣(需修改)


Book2.zip (19.89 KB)
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# jeffrey628litw
  1. Private Const Sh = "Sheet1"                              '模組的私用常數
  2. Dim d As Object                                          '模組的私用變數
  3. Private Sub UserForm_Initialize()    '表單初使化時的事件
  4.     Set d1 = CreateObject("Scripting.Dictionary")  '你沒有設置變數
  5.     Set d2 = CreateObject("Scripting.Dictionary")
  6.     ' 程式碼
  7.     '
  8.    
  9. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-7-17 16:09 編輯

回復 10# jeffrey628litw
在物件模組中(表單也是物件模組)  With UserForm2 => With Me  或可以不用  With
  1.   r = d2(myname & "-" & mycase)  'r=無 -> Cells(r, i + 1)所以錯誤        
  2.         For i = 1 To 9
  3.             Sheets("Sheet1").Cells(r, i + 1).Value = .Controls("TextBox" & i).Value
複製代碼
試試這附檔

Tset.rar (31.91 KB)
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題