2017-04-18 71 views
0

如何檢查在VBA的Excel中我的表的每一個單元的最後一個字符是一個>(上級標誌)。的Excel - VBA:如何檢查是否每一個細胞的最後一個字符是>(優於符號)

以下是我到目前爲止所做的工作。

Dim c As Range 

For Each c In Range("C1", Range(">" & Rows.Count).End(xlUp)) 
    If Not IsNumeric(Mid(c, 3, 1)) Then 
     MsgBox ("Found !!!") 
    End If 
    Exit For 
Next c 
+1

你的意思是**每個單元**是否以「>」結尾?或者每個**使用的**單元以「>」結尾?或者C列中的每個使用過的單元格**都以「>」結尾?或者,對於所有這些情況,你的意思是**任何**細胞而不是**每個**細胞? – YowE3K

+0

感謝YowE3K的回覆。我的意思是C列中的「每個單元格」。 – Alice

回答

0

可以使用Like運營商以通配符*作爲前綴。

裏面你For循環,檢查一個單元都有一個>末,使用方法:

Dim C As Range 

With Worksheets("Sheet3") ' <-- modify "Sheet3" to your sheet's name 
    ' loop through column C, from C1 until last cell with data in Column C (including blank cells in the middle) 
    For Each C In Range("C1:C" & .Cells(.Rows.Count, "C").End(xlUp).Row) 
     If C.Value Like "*>" Then '<-- if the end of the cell is ">" 
      MsgBox "Found !!! at Cell " & C.Address 
     End If 
    Next C 
End With 
+0

我試過了'DO If C.Value Like「*>」Then MsgBox「Found !!! at Cell」&C.Address End If LOOP'但它不起作用 – Alice

+0

@愛麗絲你得到了什麼錯誤?你是否在單元格內尋找'''Value'或'Formula'?如果它現在可用,請參閱編輯的代碼 –

+0

我正在用宏(ALT + 11)編寫該代碼,並且在那裏,我使用命令按鈕創建了一個UserFrom。所以我把你的代碼粘貼到'Private Sub CommandButton1_Click()' – Alice

0

可以使用right函數來獲得最後一個字符,並檢查它是否等於chr(62)這是>

您可以修改您在下面的方式代碼:

Right(ActiveCell.Value, 1) = Chr(62) 

它將返回TRUE如果最後一個字符是>

0

首先使用活動工作表。然後你嘗試找到列「C」中的最後一行。一旦找到它,就開始循環從C1到C & lastRow的範圍。在那裏,如果您在右側找到「>」符號,您可以在「立即」窗口中打印「找到」和行號。然後你退出分組。

下面是代碼:

Public Sub TestMe() 

    Dim c   As Range 
    Dim lastRow  As Long 

    With ActiveSheet 
     lastRow = .Cells(.Rows.Count, "C").End(xlUp).Row 

     For Each c In .Range(.Cells(1, 3), .Cells(lastRow, 3)) 
      If Right(c, 1) = ">" Then 
       Debug.Print "FOUND" 
       Debug.Print c.Row 
      Exit For 
      End If 


     Next c 

    End With 

End Sub 
0

當我看了你的問題的標題,你說,你要檢查,如果在C列每個單元格的最右邊的字符爲「>」。對?

的,我不明白爲什麼您使用的退出對於一次「>」中發現的任何細胞,雖然它是在錯誤的地方使用,因爲它會先循環後觸發。

如果你想實現你的問題的標題說的話,試試這個...

下面的代碼將檢查在C列每個單元格,並返回一個「找到了!」如果最後一個字符是「>」或將返回「未找到!」。

Sub CheckTheLastCharacterInString() 
    Dim lr As Long 
    lr = Cells(Rows.Count, "C").End(xlUp).Row 
    Range("D1:D" & lr).Value = Evaluate("IF(RIGHT(C1:C" & lr & ",1)="">"",""Found!"",""Not Found!"")") 
End Sub 
+0

您的代碼無法使用。我將它粘貼到Private Sub CommandButton1_Click()中並沒有效果。 – Alice

+0

將此代碼放置在標準模塊上,然後在CommandButton1_Click事件中,您只需放置一行代碼(如Call CheckTheLastCharacterInString)即可。請閱讀我在答案中添加的描述以及代碼的工作原理。 – sktneer

+0

此外,代碼將在表單中的D列中返回「找到或未找到」。 – sktneer

相關問題