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