EXCEL 重複的值

匿名
2022-08-22T05:17:07+00:00

下載檔案 此檔案不知為何

使用 塞選 + 條件格式設定->醒目提示儲存格規則->重複的值

找不出哪個 值造成異常

之後點塞選的箭頭 都會異常的卡

我其他資料 五六千筆 使用以樣的方式也沒有 這麼卡

不知道是哪個部份的原因呢?

下圖是我公司的版本

希望厲害的大大幫一下 小弟不才 感謝!!!

Microsoft 365 與 Office | Excel | 家用版 | Windows

鎖定的問題。 此問題已從 Microsoft 支援服務社群移轉。 您可以對其是否有幫助進行投票,但無法對問題新增註解或回覆,或進行追蹤。

0 則留言 沒有留言

9 個回答

排序依據: 最實用
  1. 匿名
    2022-08-24T10:48:38+00:00

    先關閉自動計算看看。

    如果包含大量公式,排序時會持續觸發自動重算。

    此回答有幫助嗎?

    0 則留言 沒有留言
  2. 匿名
    2022-08-24T01:29:56+00:00

    我公司的電腦大多都是SSD

    直接用軟體下載或複製網址到撥放器撥放

    如上影片

    感謝協助!

    此回答有幫助嗎?

    0 則留言 沒有留言
  3. 匿名
    2022-08-23T09:12:21+00:00

    您好, 弒小痕

    感謝您的寶貴資訊分享.我已下載您上傳的Excel文檔並進行查看.

    確實如您所示,流暢的工作簿(2461條資料)的塞選打開的速度比第一個工作簿來得快,這應該和資料的特殊性有關係.

    如果當前A列中的Excel資料帶有小數點或者其他不規則內容,抑或是特殊符號,當前清單塞選時候建立索引的速度也會受到影響.為了排查是否是Excel本身程式的問題,我嘗試使用帶有SSD固態硬碟的測試機器打開您此前提供的第一個檔.

    結果是正常的,速度是比此前的測試機器(HDD 機械硬碟)快,幾近是秒開的情況.所以我認為Excel的塞選在建立大量資料的索引的時候是受到硬碟速度的影響的.

    而我此前提供的VB代碼則很好地避開了此問題,因為VB代碼運行調用的是您的CPU資源,正好您的CPU性能足夠使VB代碼在運行的時候和塞選同時運行,自然也就可以快速打開你的塞選列表.

    希望這可以解答您的疑惑.

    此回答有幫助嗎?

    0 則留言 沒有留言
  4. 匿名
    2022-08-23T00:25:20+00:00

    感謝你的協助!!!

    下載檔案 如此檔案 需要比對的重複值更多 但點取塞選往下箭頭時 速度很快 下方則是我電腦配備

    我就算只開啟 一個EXCEL 檔案 上帖的檔案 就是不知道為何 點取塞選的往下箭頭 會如此緩慢

    在此使用者 並不會使用VB功能 此VB 功能感謝您提供程式碼! 我先行保留

    希望看可否 查出 造成 塞選+重複的值 緩慢的原因呢?

    此回答有幫助嗎?

    0 則留言 沒有留言
  5. 匿名
    2022-08-22T09:46:31+00:00

    您好 弒小痕

    歡迎來到微軟社區.

    根據您的描述,不用擔心,我們可以共同努力,不斷接近答案。

    據你發佈的 / Excel / 類別,我們知道你的問題是*"在Excel中使用塞選的時候會導致你的程式異常地卡"*。如果我的理解是錯誤的,請您隨時糾正我。

    在觀察你提供的表格之後,我們發現其中A列帶有3703條資料,並且搭配使用條件格式篩選重複值.

    這的確可能需要一些時間,因為每次點擊篩選的時候會不斷地生成查找帶有條件格式的儲存格,以下是測試電腦對使用條件格式的A列塞選.这大概花費了6-8S的時間生成.以下圖片是打開當前Excel檔的測試機器的CPU和記憶體資訊:

    這可能是一個預期的行為. 如果去除了整個儲存格的條件格式,則您在點擊將可以做到流暢開啟

    當然,如果您覺得條件格式的運行效率會拖垮你的應用程式,以下的VBA代碼可以幫助你篩選出這些重複值,並且佔用資源更低效率會更高,而且您在點擊的時候也不會卡頓:

    Sub ColorMe()
        On Error Resume Next
        c = InputBox("請輸入列標", , "C")
        r = Cells(65536, c).End(xlUp).Row
        arr = Cells(1, c).Resize(r, 1).Value
       
        '獲取重複次數
        Set d = CreateObject("scripting.dictionary")
        For i = 1 To r
            d(arr(i, 1)) = d(arr(i, 1)) + 1
        Next i

        '判斷是否需要上色並隨機出顏色值
        ks = d.keys
        its = d.items
        For i = 0 To UBound(ks)
            If its(i) > 1 Then
                d.Item(ks(i)) = RGB(Int(Rnd * 99) + 99, Int(Rnd * 99) + 99, Int(Rnd * 99) + 99)
            Else
                d.Item(ks(i)) = xlNone
            End If
        Next
       
        '逐行查字典賦予顏色值
        t = Cells(1, 256).End(xlToLeft).Column
        For i = 1 To r
            Cells(i, 1).Resize(1, t).Interior.Color = d(arr(i, 1))
        Next
        Set d = Nothing
    End Sub

    完成之後您的塞選可以根據不同值對應的顏色進行挑選.

    注:如果需要使用該VBA代碼,請嘗試將其複製到你的Word文檔 >> 然後右擊工作簿的"檢視程式碼"

    >> 從Word文檔複製進去 >> 完成之後點擊上方"播放按鈕" >> 在彈窗輸入A >> 將會生成對重複值的標記

    我希望這有幫助,如果有什麼更新,請隨時告知.

    Chandy|Microsoft 社區支持專家

    此回答有幫助嗎?

    0 則留言 沒有留言