返回列表 上一主題 發帖

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

先在此感恩版大的幫忙...^^...

版主大大您好:我對於VBA實在很笨拙,請問我將你的程式貼過來後,是這裡有問題嗎?

Private Sub UserForm_Initialize()


Set DY = CreateObject("Scripting.Dictionary")
Set DZ = CreateObject("Scripting.Dictionary")
Set Sht1 = Sheets("Sheet1")
K = Sht1.[A65536].End(xlUp).Row
With Sht1
    For Y = 2 To K
      Ts = .Range("A" & Y): If DY(Ts) <> "" Then Else DY(Ts) = Ts: ListBox5.AddItem Ts
       If .Range("D" & Y) <> "" Then TS1 = .Range("D" & Y)
       If DZ(TS1) <> "" Then Else DZ(TS1) = TS1: ListBox1.AddItem TS1
    Next
End With
     Set DY = Nothing: Set DZ = Nothing: Y = 0: Ts = "": TS1 = ""                         '這以上為Private Sub ListBox5_Click()和Private Sub ListBox4_Click()的程式
     
           
  
  
  

End Sub


Private Const Sh = "Sheet1"    '資料庫                   '模組的私用常數




    Set d = CreateObject("Scripting.Dictionary")

    With Sheets(Sh)

       K = 2

        Do While .Cells(K, "A") <> ""

            d(.Cells(K, "A").Value) = ""

            K = K + 1

        Loop

    End With

    ListBox_1.List = d.KEYS

End Sub

檔案在此(方便的話請您將檔案改好上傳給我下載):http://www.FunP.Net/823425

TOP

回復 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

各位大師,之前可能是小弟說的不清楚,才沒人回應,在此我再重說一次需求:
檔案1:http://www.FunP.Net/368256
此檔表單UserForm1已完成
檔案2:http://www.FunP.Net/623352
此檔表單UserForem2中的Listbox1-5也製作好了
需求是:將UserForm1的功能加到UserForm2裡面

TOP

        靜思自在 : 人要知福、惜福、再造福。
返回列表 上一主題