- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
9#
發表於 2014-12-29 14:56
| 只看該作者
回復 6# ayubbs
UserForm2- Option Explicit
- Dim Rng As Range
- Private Sub UserForm_Initialize()
- Set Rng = ThisWorkbook.Worksheets("Sheet1").Range("A1")
- With ComboBox1 '
- .Value = ""
- .ColumnCount = 1
- If Rng <> "" Then
- .List = Rng.CurrentRegion.Value
- .Value = Rng
- Else
- .Clear
- End If
- End With
- End Sub
- Private Sub ComboBox1_Change()
- Dim AR, i As Integer
- AR = Array(TextBox1, TextBox2, TextBox3)
- With ComboBox1
- If .ListIndex > -1 Then
- For i = 0 To UBound(AR)
- AR(i).Value = .List(.ListIndex, i + 1)
- Next
- '一堆的的控制項寫不完
- ' TextBox1 = .List(.ListIndex, 1)
- ' TextBox2 = .List(.ListIndex, 2)
- ' TextBox3 = .List(.ListIndex, 3)
- End If
- End With
- End Sub
- Private Sub CommandButton1_Click() '刪除選擇列
- With ComboBox1
- If .ListIndex > -1 Then
- If MsgBox("刪除選擇列" & .Value, vbYesNo) = vbYes Then
- Rng.CurrentRegion.Rows(.ListIndex + 1).Delete
- Set Rng = ThisWorkbook.Worksheets("Sheet1").Range("A1")
- If Rng <> "" Then
- .List = Rng.CurrentRegion.Value
- Else
- .Clear
- End If
- End If
- Else
- MsgBox "資料庫 沒有 " & .Value, , "刪除選擇列"
- End If
- End With
- End Sub
- Private Sub CommandButton2_Click() '新增一列
- Dim AR
- AR = Array(ComboBox1, TextBox1, TextBox2, TextBox3)
- With ComboBox1
- If .ListIndex > -1 Then
- MsgBox "資料庫中已有 " & .Value, , "新增一列"
- ElseIf .ListIndex = -1 Then
- If InStr("," & Join(AR, ",") & ",", ",,") Then
- MsgBox "資料不全"
- ElseIf MsgBox("新增一列 " & .Value, vbYesNo) = vbYes Then
- If Rng = "" Then
- Rng.Resize(, UBound(AR) + 1).Value = AR
- Else
- With Rng.CurrentRegion
- .Cells(.Rows.Count + 1, 1).Resize(, UBound(AR) + 1) = AR
- End With
- End If
- .List = Rng.CurrentRegion.Value
- End If
- End If
- End With
- End Sub
- Private Sub CommandButton3_Click() '修改儲存
- Dim Ar1, Ar2
- With ComboBox1
- If .ListIndex > -1 Then
- Ar1 = Array(ComboBox1, TextBox1, TextBox2, TextBox3)
- Ar2 = Application.Transpose(Application.Transpose(Rng.CurrentRegion.Rows(.ListIndex + 1)))
- If InStr("," & Join(Ar1, ",") & ",", ",,") Then
- MsgBox "資料不全 !!"
- ElseIf Join(Ar1, ",") = Join(Ar2, ",") Then
- MsgBox Join(Ar1, ",") & vbLf & "資料沒有修改!!"
- ElseIf MsgBox("修改儲存 " & vbLf & Join(Ar1, ","), vbYesNo) = vbYes Then
- Rng.CurrentRegion.Rows(.ListIndex + 1).Resize(, UBound(Ar1) + 1) = Ar1
- .List = Rng.CurrentRegion.Value
- End If
- ElseIf .ListIndex = -1 Then
- MsgBox "請選擇 新增一列 按鍵", , "修改儲存"
- End If
- End With
- End Sub
複製代碼 |
|