Excel 值为“是”时vba从单元格复制到另一张图纸

Excel 值为“是”时vba从单元格复制到另一张图纸,excel,vba,copy,Excel,Vba,Copy,所以我有两张纸,一张有信息,另一张也应该复制信息 如果“完成”标记为“是”,则该行中的所有信息都将复制到名为“FullpInfo2”(带按钮)的工作表中。在图片上的“模板”中。但我不知道现在要做什么。有人能告诉我如何继续吗 如果我添加一个新行并赋予其值“yes”,它应该重写上一行(名称、饮料、食物、车辆) 你可以试试: Option Explicit Sub CopyYes() Dim cell As Range Dim Source As Worksheet, Targe

所以我有两张纸,一张有信息,另一张也应该复制信息

如果“完成”标记为“是”,则该行中的所有信息都将复制到名为“FullpInfo2”(带按钮)的工作表中。在图片上的“模板”中。但我不知道现在要做什么。有人能告诉我如何继续吗

如果我添加一个新行并赋予其值“yes”,它应该重写上一行(名称、饮料、食物、车辆)

你可以试试:

Option Explicit

Sub CopyYes()

    Dim cell As Range
    Dim Source As Worksheet, Target As Worksheet

    With ThisWorkbook
        Set Source = .Worksheets("PersonalInfo")
        Set Target = .Worksheets("FullpInfo")
    End With

    With Target

        'Formatting
        Call Module1.Formatting(.Range("B3"), "Name", "Titles")
        Call Module1.Formatting(.Range("D3"), "Drink", "Titles")
        Call Module1.Formatting(.Range("B6"), "Food", "Titles")
        Call Module1.Formatting(.Range("D6"), "Vehicle", "Titles")

        For Each cell In Source.Range("E2:E100")

            If cell.Value = "yes" Then

                'Values
                Call Module1.Formatting(.Range("B4"), Source.Range("A" & cell.Row).Value, "Values")
                Call Module1.Formatting(.Range("D4"), Source.Range("C" & cell.Row).Value, "Values")
                Call Module1.Formatting(.Range("B7"), Source.Range("B" & cell.Row).Value, "Values")
                Call Module1.Formatting(.Range("D7"), Source.Range("D" & cell.Row).Value, "Values")

            End If

        Next cell

    End With

End Sub

Sub Formatting(ByVal rng As Range, str As String, strType As String)

    With rng
        .Value = str
        .Font.Bold = True
        If strType = "Values" Then
            .Font.Color = vbBlue
        End If
    End With

End Sub

对不起,我忘了说如果我创建另一行代码也应该可以。但是我得到了“Error 424,Object required”,如果您添加行代码就可以工作。请记住,代码是区分大小写的,检查“yes”“.你从哪里弄来的错误?是的,我很笨。”。太累了,忘记了显式选项和更改模块1。。它现在可以工作了,但每次我按下按钮都会创建一个新行。是否可以在FullpInfo中替换当前的“姓名、饮料、食物和车辆”?只是替换,而不是创建新行:)以使其清晰。每条线都应该替换旧的吗?例如,所有名称都将放在单元格B4中,饮料放在D4中,食品放在B7中,车辆放在单元格D7中?是的,没错:)
Option Explicit

Sub CopyYes()

    Dim cell As Range
    Dim Source As Worksheet, Target As Worksheet

    With ThisWorkbook
        Set Source = .Worksheets("PersonalInfo")
        Set Target = .Worksheets("FullpInfo")
    End With

    With Target

        'Formatting
        Call Module1.Formatting(.Range("B3"), "Name", "Titles")
        Call Module1.Formatting(.Range("D3"), "Drink", "Titles")
        Call Module1.Formatting(.Range("B6"), "Food", "Titles")
        Call Module1.Formatting(.Range("D6"), "Vehicle", "Titles")

        For Each cell In Source.Range("E2:E100")

            If cell.Value = "yes" Then

                'Values
                Call Module1.Formatting(.Range("B4"), Source.Range("A" & cell.Row).Value, "Values")
                Call Module1.Formatting(.Range("D4"), Source.Range("C" & cell.Row).Value, "Values")
                Call Module1.Formatting(.Range("B7"), Source.Range("B" & cell.Row).Value, "Values")
                Call Module1.Formatting(.Range("D7"), Source.Range("D" & cell.Row).Value, "Values")

            End If

        Next cell

    End With

End Sub

Sub Formatting(ByVal rng As Range, str As String, strType As String)

    With rng
        .Value = str
        .Font.Bold = True
        If strType = "Values" Then
            .Font.Color = vbBlue
        End If
    End With

End Sub