使用VBA将单元格值复制到Excel中的另一个工作表中

问题描述 投票:1回答:1

我有以下代码,在我匹配另一个单元格中的字符串后,成功将单元格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
excel vba excel-vba excel-2013
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.