自動【判讀有標示指定底色的數字次數】&【次數加總】&【輸出檔案】之語法。
- 帖子
- 315
- 主題
- 51
- 精華
- 0
- 積分
- 367
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-9-29
- 最後登錄
- 2021-10-12
|
16#
發表於 2019-5-4 22:54
| 只看該作者
本帖最後由 Airman 於 2019-5-4 23:01 編輯
回復 13# Scott090
Scott090大大:您好!
不好意思,沒有注意到您程式寫在模組1^^"
在執行檔添加Main
已可正確執行。
執行後~答案正確~測試成功~感恩^^
特別感謝您的文字註解^^ |
|
|
|
|
|
|
|
- 帖子
- 315
- 主題
- 51
- 精華
- 0
- 積分
- 367
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-9-29
- 最後登錄
- 2021-10-12
|
15#
發表於 2019-5-4 22:35
| 只看該作者
回復 13# Scott090
Scott090大大:您好!
不好意思,2個"統計"檔為2007版無法開啟核對答案;
主程式檔點執行鍵~沒有反應^^" |
|
|
|
|
|
|
|
- 帖子
- 315
- 主題
- 51
- 精華
- 0
- 積分
- 367
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-9-29
- 最後登錄
- 2021-10-12
|
14#
發表於 2019-5-4 22:24
| 只看該作者
回復 12# 准提部林
准大:您好!
測試成功~感恩^^
您說的沒有錯~
' If R < 10 Then xB.Close 0: GoTo 101
改為
If R < 2 Then xB.Close 0: GoTo 101 '照模擬應該用這一行
答案才是正確的。謝謝您^^ |
|
|
|
|
|
|
|
- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
12#
發表於 2019-5-4 17:38
| 只看該作者
本帖最後由 准提部林 於 2019-5-4 19:00 編輯
Private Sub CommandButton1_Click()
Dim BK As Workbook, F$, T$, xB As Workbook, xS As Worksheet
Dim xD, Arr(1 To 7, 1 To 49), Brr, R&, V, xR As Range
Set BK = ThisWorkbook
Set xD = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
Do
If F = "" Then F = Dir(BK.Path & "\*.xls") Else F = Dir()
If F = "" Then Exit Do
If Not F Like "今日總表(均值排序)-*_*-(####-##-##).xls" Then GoTo 101
T = Left(Right(F, 16), 12)
Brr = xD(T)
If Not IsArray(Brr) Then xD(T) = Arr: Brr = Arr
'-----------------------------------------------
Set xB = Workbooks.Open(BK.Path & "\" & F, ReadOnly:=True): Set xS = xB.Sheets(1)
R = xS.[A65536].End(xlUp).Row - 8
If R < 10 Then xB.Close 0: GoTo 101
'If R < 2 Then xB.Close 0: GoTo 101 '照模擬應該用這一行
For Each xR In xS.Cells(R, 2).Resize(1, 49)
V = InStr("---8--37-38-4--45-39-40-", "-" & xR.Interior.ColorIndex & "-") / 3
If Val(xR) > 0 And V > 0 Then Brr(V, xR) = Brr(V, xR) + 1
Next
xD(T) = Brr: xB.Close 0
101: Loop
'----------------------------------------------------
If xD.Count = 0 Then Exit Sub
Application.DisplayAlerts = False
For Each V In xD.keys
F = "今日總表(均值排序)-" & V & "_統計.xls"
BK.Sheets("Sample").Copy
With ActiveWorkbook
.Sheets(1).[B2].Resize(7, 49).Value = xD(V & "")
.SaveAs Filename:=BK.Path & "\" & F, CreateBackup:=False
.Close 0
End With
Next
End Sub
與模擬結果不同, 僅以 "儲存格底色" 及 "數字" 為判別,
今日總表(均值排序).rar (71.11 KB)
|
|
|
|
|
|
|
|
- 帖子
- 315
- 主題
- 51
- 精華
- 0
- 積分
- 367
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-9-29
- 最後登錄
- 2021-10-12
|
11#
發表於 2019-5-4 14:39
| 只看該作者
本帖最後由 Airman 於 2019-5-4 14:46 編輯
回復 10# Scott090
Scott090大大:您好!
1. 檔案以 日期序 做分類; 與 X-Y 無關 ==> OK! 8#的補充說明~請"忽略"即可。
2. 同一分類內每一個檔案都做相同的統計規則,
統計規則:
..........
..........
統計規則:不對!
規則重點整理~謹請參考~
統計範圍:
1_檔案內工作表的Cells([B65536].End(xlUp).Row) <10(即最後有數字的列數小於第10列)的檔案略過不計。
2_搜尋統計的範圍從第2列(即第一列標題的數字不在計算範圍)到Cells([B65536].End(xlUp).Row - 8, 2).Resize(1, 49)。
統計規則:
單一個(即有標示40號底色)是指︰檔案內的工作表之
當Cells([B65536].End(xlUp).Row - 8, 2).Resize(1, 49)有顯示數字(即<>""),
但Cells([B65536].End(xlUp).Row - 9, 2).Resize(1, 49)的同欄沒有數字(即="")
或
當Cells([B65536].End(xlUp).Row - 8, 2).Resize(1, 49)=第2列時,某欄有顯示數字(即<>""),
連2個(即有標示39號底色)是指︰檔案內的工作表之
當Cells([B65536].End(xlUp).Row - 8, 2).Resize(1, 49)有顯示數字(即<>""),
且Cells([B65536].End(xlUp).Row - 9, 2).Resize(1, 49)的同欄也有數字(即<>"")
但Cells([B65536].End(xlUp).Row - 10, 2).Resize(1, 49)的同欄沒有數字(即="")
或
當Cells([B65536].End(xlUp).Row - 8, 2).Resize(1, 49)=第3列時,某欄有顯示數字(即<>""),
且Cells([B65536].End(xlUp).Row - 9, 2).Resize(1, 49)的同欄也有數字(即<>"")
連3個(即有標示45號底色)是指︰檔案內的工作表之
當Cells([B65536].End(xlUp).Row - 8, 2).Resize(1, 49)有顯示數字(即<>""),
且Cells([B65536].End(xlUp).Row - 9, 2).Resize(1, 49)的同欄也有數字(即<>"")
且Cells([B65536].End(xlUp).Row - 10, 2).Resize(1, 49)的同欄也有數字(即<>"")
但Cells([B65536].End(xlUp).Row - 11, 2).Resize(1, 49)的同欄沒有數字(即="")
或
當Cells([B65536].End(xlUp).Row - 8, 2).Resize(1, 49)=第4列時,某欄有顯示數字(即<>""),
且Cells([B65536].End(xlUp).Row - 9, 2).Resize(1, 49)的同欄也有數字(即<>"")
且Cells([B65536].End(xlUp).Row - 10, 2).Resize(1, 49)的同欄也有數字(即<>"")
其餘連4個,....,連6個以此類推。
連7個(即有標示8號底色)是指︰檔案內的工作表之
當Cells([B65536].End(xlUp).Row - 8, 2).Resize(1, 49)有顯示數字(即<>""),
且Cells([B65536].End(xlUp).Row - 9, 2).Resize(1, 49)的同欄也有數字(即<>"")
且Cells([B65536].End(xlUp).Row - 10, 2).Resize(1, 49)的同欄也有數字(即<>"")
且Cells([B65536].End(xlUp).Row - 11, 2).Resize(1, 49)的同欄也有數字(即<>"")
且Cells([B65536].End(xlUp).Row - 12, 2).Resize(1, 49)的同欄也有數字(即<>"")
且Cells([B65536].End(xlUp).Row - 13, 2).Resize(1, 49)的同欄也有數字(即<>"")
且Cells([B65536].End(xlUp).Row - 14, 2).Resize(1, 49)的同欄也有數字(即<>"") |
|
|
|
|
|
|
|
- 帖子
- 315
- 主題
- 51
- 精華
- 0
- 積分
- 367
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-9-29
- 最後登錄
- 2021-10-12
|
8#
發表於 2019-5-4 11:30
| 只看該作者
本帖最後由 Airman 於 2019-5-4 11:44 編輯
回復 7# Scott090
Scott090大大:您好!
走位有點嚴重~以總數計︰【01~06共9個】應該沒有錯^^
另外~紅色字的編碼,小弟作個補充︰
X_Y
X=號碼排序=1~49(所以一個日期別有49個檔案)
Y=期距=有_連1;_連2;... ;_連10;_1;_2;.... ;_99;_100等不定的編碼,(所以一個日期別有49(含)個以內(即會有重複)的期距編碼)。
以上謹供參考! 謝謝您^^ |
|
|
|
|
|
|
|