- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2025-1-10
|
17#
發表於 2021-7-30 11:33
| 只看該作者
回復 16# wang077
請測試看看,謝謝
Private Sub CommandButton3_Click()
Dim Arr, Ar(), xD, i&, j&
Set xD = CreateObject("Scripting.Dictionary")
b = ComboBox1.Text
Sheets(b).Select
If Me.ComboBox2.Text <> "" And Me.ComboBox3.Text = "" Then
Arr = Sheets(b).AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible)
ReDim Ar(1 To UBound(Arr), 1 To 4): m = 1
For i = 1 To UBound(Arr)
T = Arr(i, 1) & Arr(i, 2) & Arr(i, 4)
If InStr(T, "提檢數") Or InStr(T, "良品數") Or InStr(T, "良率") Then
If xD(T & "/3") <> 1 Then
xD(T & "/3") = 1: m = m + 1
If Ar(1, 1) = "" Then '第1列
Ar(1, 1) = Cells(2, 1): Ar(1, 2) = Cells(2, 2)
Ar(1, 3) = Cells(2, 4): Ar(1, 4) = Cells(2, 36)
End If
If xD(Arr(i, 1) & "/1") <> 1 Then xD(Arr(i, 1) & "/1") = 1: Ar(m, 1) = Arr(i, 1)
If xD(Arr(i, 2) & "/2") <> 1 Then xD(Arr(i, 2) & "/2") = 1: Ar(m, 2) = Arr(i, 2)
Ar(m, 3) = Arr(i, 4)
If InStr(T, "良率") Then Ar(m, 4) = Format(Arr(i, 36), "0%") Else Ar(m, 4) = Arr(i, 36)
End If
End If
Next
With Me.ListBox1
.ColumnWidths = "40,50,70,40"
.List = Ar
.ColumnCount = m
End With
End If
Sheets(b).Select
End Sub |
|