Excel 如果单元格的第一个字符是GUF,则删除GUF,如果不是,则将其留空

Excel 如果单元格的第一个字符是GUF,则删除GUF,如果不是,则将其留空,excel,vba,if-statement,character,Excel,Vba,If Statement,Character,我对编码还是新手,所以如果我不懂所有的东西,我道歉 我需要检查D3:D5000的每个单元格是否以GUF开头。然后将GUF从其上拆下。否则我什么也不做 这是我一直试图使用的,但我得到一个错误Do ohne循环: Sub RemoveGUFfromcellsstartingwithGUF() Range("D3").Select Selection.End(xlDown).Offset(1, 0).Select ActiveCell = "end" Range("B1")

我对编码还是新手,所以如果我不懂所有的东西,我道歉

我需要检查D3:D5000的每个单元格是否以GUF开头。然后将GUF从其上拆下。否则我什么也不做

这是我一直试图使用的,但我得到一个错误Do ohne循环:

Sub RemoveGUFfromcellsstartingwithGUF()

Range("D3").Select
    Selection.End(xlDown).Offset(1, 0).Select
    ActiveCell = "end"

    Range("B1").Select

    Do Until ActiveCell = "end"
    If ActiveCell = "GUF*" Then
    ActiveCell.Value = Mid(Cell, 4, 999999)
    End If
    ActiveCell.Offset(1, 0).Select



End Sub
谢谢你的帮助/建议


这就是你要尝试的吗

Sub Sample()
    Dim ws As Worksheet
    Dim lRow As Long, i As Long

    Set ws = Sheet1 '<~~ Change this to the relevant sheet

    With ws
        '~~> Find last row in Col D
        lRow = .Range("D" & .Rows.Count).End(xlUp).Row

        '~~> Loop through cell in Col D
        For i = 3 To lRow
            If .Range("D" & i).Value Like "GUF*" Then
                .Range("D" & i).Value = Mid(.Range("D" & i).Value, 4)
            End If
        Next i
    End With
End Sub
子样本()
将ws设置为工作表
朦胧如长,我如长
设置ws=Sheet1'循环通过列D中的单元格
对于i=3至lRow
如果.Range(“D”&i).值像“GUF*”那么
.Range(“D”和i).Value=Mid(.Range(“D”和i).Value,4)
如果结束
接下来我
以
端接头

首先,当您在单元格中循环时,最好对单元格中的每个单元格使用
,无需更改选择

首先,设置一个运行范围

Sub RemoveGUFfromcellsstartingwithGUF()
    dim first_cell as Range 
    dim last_cell as Range 
    dim rng as Range
    set first_cell = ActiveSheet.Range("D1") 'first cell of your range
    set last_cell = ActiveSheet.Range("D5000") 'last cell of your range
    set rng = Range(first_cell, last_cell) 'range from first_cell to last_cell

     For Each cell in rng.cells 'looping through cells of the range
        'What you do here will be done to every cell.
        if left(cell.value, 3) = "GUF" then cell.value = Mid(cell.value,4)
     Next cell
End Sub

我希望这有帮助。

Ehm使用搜索/替换如何?搜索
“GUF”
reaplace with
”。将
If.Range(“D”和i)这样的值更改为
,然后将
更改为
,如果保留(.Range(“D”)和i.Value,3)=“GUF”然后更改为
@Yane:我可以问一下为什么要更改它吗?:)您也可以使用
Left()
。给猫剥皮的方法很多…用词不当,它应该说“我会用Left()相反…:)@Yane:啊,好吧…现在这是个人的选择:)@Cedric注意,在
Set ws=Sheet1
中,
Sheet1
是工作表的VBA名称,而不是选项卡上的名称。如果要使用选项卡的名称,请使用
Set ws=ThisWorkbook.Worksheets(“EVA”)