簡體   English   中英

Excel VBA。 對於范圍中的每一行,該行中的每個單元格,該單元格中的每個字符

[英]Excel VBA. For each row in range, for each cell in row, for each character in cell

我創建了一個很簡單的VBA宏。

對於范圍中的每一行,然后是該行中的每個單元格,然后是該單元格中的每個字符。

但是它返回不支持的屬性或方法。

現在,要在Excel VBA中引用單元格中的每個字符,必須將其定義為范圍。 那么,范圍內的行中的單元格不是范圍對象又如何呢?

在所有Excel示例中,具有Characters屬性的單元格均以絕對值引用。 Worksheets("Sheet1").Range("A1")

我是否必須編寫Worksheets("MySheet").Range("B1") ... Worksheets("MySheet").Range("B2") ... ... Worksheets("MySheet").Range("B250")要訪問字符,或者是否可以在沒有Mid函數的情況下訪問單元格中的每個字符?

順便說一句,Mid函數失去了格式設置,但是我正在尋找帶下划線的字符。

我的程序是這樣的

Sub Celltest()
    For Each rw In Sheets("Joblist").Range("B1:D250").Rows
        For Each cel In rw.Cells
            For Each char In cel.Characters
                If char.Font.Underline = True Then MsgBox char
            Next
        Next
    Next
End Sub

結果是我收到一條消息,提示不支持屬性或方法。

謝謝!

大衛

“為什么突然突然成為范圍對象的一部分而不是范圍?” 那不是問題。 錯誤是Object doesn't support this property or method 這意味着(基本上)之后的所有內容. 是一個對象,因此錯誤是告訴你, 什么是與您是如何使用.Character

我做了一些快速搜索,這可行:

Sub Celltest2()
Dim rw As Range, cel As Range
Dim i As Integer
Dim char    
    For Each rw In Sheets("Joblist").Range("B1:D250").Rows
        For Each cel In rw.Cells
            For i = 1 To Len(cel)
                'Debug.Print cel.Characters(i, 1).Text
                If cel.Characters(i, 1).Font.Underline = 2 Then
                    MsgBox (cel.Characters(i, 1).Text)
                End If
            Next i
        Next
    Next
End Sub

我只是查看了Characters Object文檔,並找到了如何使用.Characters的答案。 問題是如何將.Characters與范圍一起使用-不需要復雜的技能或知識。 只需使用VB錯誤消息。

我注意到了兩件事。 1.字符不是集合,因此對於每個都不起作用。 2. Font.Underline不是布爾值。 嘗試類似:

Sub Celltest()
    Dim rw As Excel.Range
    Dim cel As Excel.Range
    Dim char As Excel.Characters
    Dim I As Long
    For Each rw In Sheets("Joblist").Range("B1:D250").Rows
        For Each cel In rw.Cells
            For I = 1 To cel.Characters.Count
                Set char = cel.Characters(I, 1)
                If char.Font.Underline <> xlUnderlineStyleNone Then MsgBox char.Text
            Next I
        Next
    Next
    Set rw = Nothing
    Set cel = Nothing
    Set char = Nothing
End Sub

希望能有所幫助

暫無
暫無

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

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