我有以下代码,在匹配另一个单元格中的字符串后,将单元格B,E和F成功复制到工作表2中的单元格B,C,D。问题是它复制单元格而不是其中的值(我不需要边框,颜色等)。我是新手,所以任何帮助都将不胜感激!!
我遇到的另一个问题是,虽然它会将数据复制到B列中的下一个空闲行,但它不会根据C和D列查找下一个空闲行。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim thisrow As Long
Dim lr As Long
If Target.Column = 7 Then
thisrow = Target.Row
If Target.Value = "FAULTY" Then
lr = Sheets("sheet2").Range("B" & Rows.Count).End(xlUp).Row + 1
Range("B" & ActiveCell.Row).Copy Sheets("sheet2").Range("B" & lr)
Range("D" & ActiveCell.Row).Copy Sheets("sheet2").Range("C" & lr)
Range("F" & ActiveCell.Row).Copy Sheets("sheet2").Range("D" & lr)
End If
End If
End Sub
答案 0 :(得分:4)
您可以使用.Value运算符。另外,只需为下一个可用单元格的C / D范围设置单独的变量。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim thisrow As Long
Dim lr As Long
If Target.Column = 7 Then
thisrow = Target.Row
If Target.Value = "FAULTY" Then
lr = Sheets("sheet2").Range("B" & Rows.Count).End(xlUp).Row + 1
mr = Sheets("sheet2").Range("C" & Rows.Count).End(xlUp).Row + 1
nr = Sheets("sheet2").Range("D" & Rows.Count).End(xlUp).Row + 1
Sheets("sheet2").Range("B" & lr).Value = Range("B" & ActiveCell.Row).Value
Sheets("sheet2").Range("C" & mr).Value = Range("D" & ActiveCell.Row).Value
Sheets("sheet2").Range("D" & nr).Value = Range("F" & ActiveCell.Row).Value
End If
End If
End Sub