返回列表 上一主題 發帖

[發問] 數字各取1

回復 19# ziv976688


with [A2]: .formula="=COUNT(A4:A52)&""個""" : .value=.value: end with

或 A2=application.COUNT(xS.[A4:A52]) & "個"

TOP

15樓寫得很精簡
學習重寫如下
Private Sub CommandButton1_Click()
    Set xD = CreateObject("Scripting.Dictionary")
    Tm = Timer
    Application.ScreenUpdating = False    '在背景下執行
    For Each xS In Sheets(Array("準2進3", "準3進4", "準4進5", "準5進6", "準6進7", "準7進8")) '取表格
        For Each xR In xS.Range("D2:J" & xS.[B65536].End(xlUp).Row) '取儲存格
            For Each sp In Split(xR, ",") '分開數字
                If Val(sp) > 0 Then xD(Val(sp)) = s '字典組合
            Next
        Next
        xS.[A4].Resize(99).ClearContents '清除儲存格內容
        xS.[a2] = xD.Count & "個": xS.[A3] = "號碼"
        If xD.Count = 0 Then Exit For
        With xS.[A4].Resize(xD.Count)
            .Value = Application.Transpose(xD.keys): xD.RemoveAll
            .Sort key1:=.Item(1), Order1:=xlAscending, Header:=xlNo
        End With
    Next
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

測試OK了!
感謝您的耐心指導

TOP

回復 21# 准提部林
第二段是我想學習的~
感謝版主的耐心指導

TOP

本帖最後由 ziv976688 於 2021-7-20 16:29 編輯

回復 22# ML089
不好意思,回復20樓時,忘了點回復鍵。

貴程式碼都有註解,對我在學習上幫助甚大~感恩
完全OK了!
您學習得真快,我就差遠了。
謝謝您的耐心指導和幫忙

TOP

回復 12# samwang
回復 20# ML089
回復 21# 准提部林
http://forum.twbts.com/thread-23266-1-1.html
懇請各位大大指導和幫忙 !  謝謝

TOP

本帖最後由 ziv976688 於 2021-7-22 19:52 編輯

回復 22# ML089
數字各取1_ML089.rar (84.3 KB)
不好意思,將這幾天的問題解答整理後,
想再向您請教幾個小問題 :
程式碼在Module3
1_列6的sp是什麼涵義?  special?
需不需要設立變數?
2_我現在設立的變數對不對?夠不夠全?
謝謝您
PS : 目前檔案執行正常~可Run出正確答案。

TOP

回復 21# 准提部林
Sub 餘數各取1()
Dim Brr(1 To 99, 0), xS As Worksheet, A, B
For Each xS In Sheets(Array("準2進3", "準3進4", "準4進5", "準5進6", "準6進7", "準7進8"))
    For Each A In xS.Range("d2:j" & xS.[b65536].End(xlUp).Row + 1).Value
        For Each B In Split(A, ",")
           Brr(B, 0) = B
        Next B
    Next
    With xS.[a4].Resize(99)
         .Value = Brr:  Erase Brr
         .Sort Key1:=.Item(1), Order1:=xlAscending, Header:=xlNo
    End With
'   With xS.[a2] = Application.Count(xS.[A4:A52]) & "個": End With
Next
End Sub
請問 :
列13是我寫錯程式碼,還是我放錯位列?
請您賜正。
謝謝您

TOP

回復 27# ziv976688

1_列6的sp是什麼涵義?  special?
需不需要設立變數?
2_我現在設立的變數對不對?夠不夠全?

SP是一個變數,名稱為隨意定,當初是以 Split 簡寫
好的程式應該是要定義變數比較嚴謹,因為VBA不強迫宣告變數,加上我是業餘寫小程式就沒習慣定義變數。

這小程式有4個變數可以定義如下   
Dim xD As Object, xS As Worksheet, xR As Range, SP
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 29# ML089
版主 :您好!
瞭解了!
感謝您的耐心指導和幫忙

TOP

        靜思自在 : 君子為目標,小人為目的。
返回列表 上一主題