返回列表 上一主題 發帖

[發問] checkbox&optionbutton值問題

回復 3# ayubbs
一堆的CheckBox可用物件類別模組,寫下共用的程序
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# ayubbs

UserForm2
  1. Option Explicit
  2. Dim Rng As Range
  3. Private Sub UserForm_Initialize()
  4.     Set Rng = ThisWorkbook.Worksheets("Sheet1").Range("A1")
  5.     With ComboBox1   '
  6.         .Value = ""
  7.         .ColumnCount = 1
  8.         If Rng <> "" Then
  9.             .List = Rng.CurrentRegion.Value
  10.             .Value = Rng
  11.         Else
  12.             .Clear
  13.         End If
  14.     End With
  15. End Sub
  16. Private Sub ComboBox1_Change()
  17.     Dim AR, i As Integer
  18.     AR = Array(TextBox1, TextBox2, TextBox3)
  19.     With ComboBox1
  20.         If .ListIndex > -1 Then
  21.             For i = 0 To UBound(AR)
  22.                 AR(i).Value = .List(.ListIndex, i + 1)
  23.             Next
  24.             '一堆的的控制項寫不完
  25.            ' TextBox1 = .List(.ListIndex, 1)
  26.            ' TextBox2 = .List(.ListIndex, 2)
  27.            ' TextBox3 = .List(.ListIndex, 3)
  28.         End If
  29.     End With
  30. End Sub
  31. Private Sub CommandButton1_Click() '刪除選擇列
  32.     With ComboBox1
  33.         If .ListIndex > -1 Then
  34.             If MsgBox("刪除選擇列" & .Value, vbYesNo) = vbYes Then
  35.                 Rng.CurrentRegion.Rows(.ListIndex + 1).Delete
  36.                 Set Rng = ThisWorkbook.Worksheets("Sheet1").Range("A1")
  37.                 If Rng <> "" Then
  38.                     .List = Rng.CurrentRegion.Value
  39.                 Else
  40.                     .Clear
  41.                 End If
  42.             End If
  43.         Else
  44.             MsgBox "資料庫 沒有 " & .Value, , "刪除選擇列"
  45.         End If
  46.     End With
  47. End Sub
  48. Private Sub CommandButton2_Click() '新增一列
  49.     Dim AR
  50.     AR = Array(ComboBox1, TextBox1, TextBox2, TextBox3)
  51.     With ComboBox1
  52.         If .ListIndex > -1 Then
  53.             MsgBox "資料庫中已有 " & .Value, , "新增一列"
  54.         ElseIf .ListIndex = -1 Then
  55.             If InStr("," & Join(AR, ",") & ",", ",,") Then
  56.                 MsgBox "資料不全"
  57.             ElseIf MsgBox("新增一列 " & .Value, vbYesNo) = vbYes Then
  58.                 If Rng = "" Then
  59.                      Rng.Resize(, UBound(AR) + 1).Value = AR
  60.                 Else
  61.                     With Rng.CurrentRegion
  62.                         .Cells(.Rows.Count + 1, 1).Resize(, UBound(AR) + 1) = AR
  63.                     End With
  64.                 End If
  65.                 .List = Rng.CurrentRegion.Value
  66.             End If
  67.         End If
  68.     End With
  69. End Sub
  70. Private Sub CommandButton3_Click()  '修改儲存
  71.     Dim Ar1, Ar2
  72.     With ComboBox1
  73.         If .ListIndex > -1 Then
  74.             Ar1 = Array(ComboBox1, TextBox1, TextBox2, TextBox3)
  75.             Ar2 = Application.Transpose(Application.Transpose(Rng.CurrentRegion.Rows(.ListIndex + 1)))
  76.             If InStr("," & Join(Ar1, ",") & ",", ",,") Then
  77.                 MsgBox "資料不全 !!"
  78.             ElseIf Join(Ar1, ",") = Join(Ar2, ",") Then
  79.                 MsgBox Join(Ar1, ",") & vbLf & "資料沒有修改!!"
  80.             ElseIf MsgBox("修改儲存 " & vbLf & Join(Ar1, ","), vbYesNo) = vbYes Then
  81.                 Rng.CurrentRegion.Rows(.ListIndex + 1).Resize(, UBound(Ar1) + 1) = Ar1
  82.                 .List = Rng.CurrentRegion.Value
  83.             End If
  84.         ElseIf .ListIndex = -1 Then
  85.              MsgBox "請選擇 新增一列 按鍵", , "修改儲存"
  86.         End If
  87.     End With
  88. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 信心、毅力、勇氣三者具備,則天下沒有做不成的事。
返回列表 上一主題