问:归档后如何清除细胞?

时间:2015-10-02 01:39:53

标签: excel excel-vba archiving vba

我已经整理了一个宏,它允许我将数据从一张纸存档到另一张,但是我遇到了麻烦,之后清除了信息。第一列包含我不想清除的数字,现在它只清除B列中的数据。

如果有人能看一眼,我会非常感激。

'Sub archive()
Dim i, lastrow
Dim mytext As String
lastrow = Sheets("Rooms").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To lastrow
mytext = Sheets("Rooms").Cells(i, "F").Text
If InStr(mytext, "yes") Then
Sheets("Rooms").Cells(i, "A").EntireRow.Copy Destination:=Sheets("Archive").Range("A" & Rows.Count).End(xlUp).Offset(1)
Sheets("Rooms").Cells(i, "B").Clear
End If
Next i
End Sub'

1 个答案:

答案 0 :(得分:0)

我已经在B列的相关行上取出了单元格,并将其扩展到包含任何值的同一行的最后一个单元格。

Sub archive()
    Dim i, lastrow
    Dim mytext As String

    With WorkSheets("Rooms")
        lastrow = .Range("A" & Rows.Count).End(xlUp).Row
        For i = 1 To lastrow
            mytext = .Cells(i, "F").Text
            If InStr(1, mytext, "yes", vbTextCompare) Then
                .Cells(i, "A").EntireRow.Copy Destination:=Sheets("Archive").Range("A" & Rows.Count).End(xlUp).Offset(1)
                .Range(.Cells(i, "B"), .Cells(i, Columns.Count).End(xlToLeft)).Clear
            End If
        Next i
    End With
End Sub

此外,我已使用With ... End With statementWorkSheets("Rooms")与其所有单元格相关联,以避免重复的工作表引用。

Range.Clear命令会清除所有值和格式。如果您只想删除值,则可能需要切换到Range.ClearContents method