簡體   English   中英

如果符合條件,則清除表的單元格值

[英]Clearing Cell Values of a table if matching criteria

我正在尋找一個特定范圍的單元格,並查看該單元格的LEN(gth)是否等於20。如果是,我想清除該單元格的內容並移至下一個,直到它們全部評估。

我有這份報告是從網站上提取並導出到excel的,煩惱是0.0%,顯示為磅符號(#x的20)。 我嘗試了其他搜索字符串的宏,它完全忽略了0%,一個常量是,它出現的每個單元格的長度正好是20個字符。

應該發生的是,我是:

1  Searching C3:U20 
2  for cell.len = 20 
3  if activecell = matches criteria 
4  then clear.contents
5  Goto 1 until all activecells with a len of 20 are cleared

感謝您提供的任何幫助。

G

* 編輯 *由於無法完成該工作,因此我使用了“解決方法”。 盡管效率很高,但由於它僅用在一張小桌子上,所以實際上並不重要。 我只需要在“三個”單獨的腳本中執行此操作即可。 我發現,如果將范圍從百分比格式轉換為常規,則可以只將溢出數字作為字符串來查找。 然后,一旦“清除”它們,我就將這些列重新轉換為百分比格式:

Sub sub_ConvertToGeneral()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''  Convert the Percentage Columns to General Format
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Columns("F:F").Select
    'Application.FormulaBarHeight = 2
    Range("F:F,H:H,L:M,O:O,S:S,U:U").Select
    Range("U1").Activate
    Selection.NumberFormat = "General"
    'Selection.NumberFormat = "0.00%"
    Range("A1:B1").Select
End Sub

Sub sub_Overflow()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''  Find Overflow and delete every instance of it
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Dim FindString As String
    Dim rng As Range
    FindString = "2.6965E+308"
50
    If Trim(FindString) <> "" Then
        With Sheets("Main Import").Range("C1:U20")
            Set rng = .Find(What:=FindString, _
                            After:=.Cells(.Cells.Count), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
            If Not rng Is Nothing Then
                Application.Goto rng, True
                ActiveCell.ClearContents
                Do
                Set rng = .FindNext(rng)
                GoTo 50
                Loop While Not rng Is Nothing
                Else
            End If
        End With
    End If
    Range("A1").Select
End Sub

Sub sub_ConvertToPercentage()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''  Convert the General Columns to Percentage
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Columns("F:F").Select
    'Application.FormulaBarHeight = 2
    Range("F:F,H:H,L:L,O:O,S:S,U:U").Select
    Range("U1").Activate
    'Selection.NumberFormat = "General"
    Selection.NumberFormat = "0.00%"
    Range("A1:B1").Select
End Sub

如果要清除的單元格實際上恰好包含20個字符(因此LEN(A1)將顯示20),則選擇要檢查的單元格並嘗試:

Sub dural()
    For Each r In Intersect(Selection, ActiveSheet.UsedRange)
    If Len(r.Text) = 20 Then
        r.Clear
    End If
    Next r
End Sub

編輯#1:

This version will clear cells with a value greater than 1.0E+307:

Sub dural()
    For Each r In Intersect(Selection, ActiveSheet.UsedRange)
        If IsNumeric(r.Value) Then
            If r.Value > 1E+307 Then
                r.Clear
            End If
        End If
    Next r
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM