2015-10-02 22 views
2

我已经放在一起一个宏,它允许我将数据从一张表格存档到另一张表格,但是我遇到了麻烦之后清除了信息。第一列包含我不想清除的数字,现在它只是清除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' 

回答

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 statement关联WorkSheets("Rooms")其所有的细胞来避免重复的工作表引用。

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

+0

** [已解决] ** 完美!谢谢你,你是一个拯救生命的人! –